2016-11-08 11 views
5

की अनुमति नहीं दे रहा है ठीक है, इसलिए मेरे स्टैंड पॉइंट से मेरा कोड पासिंग ग्रेड प्राप्त करने के लिए काफी सभ्य है लेकिन मुझे एक साधारण ताज़ा/शफल बटन जोड़ने में परेशानी हो रही है। जॉप्शनपेन के एड्स का उपयोग नहीं करना। ग्रहण यह नहीं लगता है कि मैंने बटन बनाया है जो मेरे लिए बिल्कुल समझ में नहीं आता है क्योंकि यह मुझे एक नोड के बारे में कुछ बता रहा है जिसमें बटन वास्तव में एक नोड है और यह बनाया गया है। लेकिन जब मैं एक और कक्षा में जाता हूं और 3 लाइन उदाहरण के साथ एक और बटन जोड़ता हूं तो यह बस काम करता है। लेकिन जब मैं इसे अपने होमवर्क कार्यक्रम में ले जाता हूं तो यह मुझे बस उस विधि को एक त्रुटि देता है जो पूरे कार्यक्रम को तोड़ देता है! कहते हैंजावा में एक साधारण बटन जोड़ना, लेकिन जावा मुझे

"विधि ऐड (नोड) प्रकार सूची में बहस (बटन) के लिए लागू नहीं है"

किसी को भी, जहां मैं अपने कोड में गलत हो रहा हो सकता है की कुछ प्रकाश डाला सकता है? यह एक नोड के साथ स्ट्रिंग रूपांतरण या कुछ ऐसा करने के लिए कुछ है जो मुझे लगता है कि इसे समझ में नहीं आता है। मुझे दिए गए किसी भी संकेत लेने के लिए तैयार हैं, लेकिन कृपया मेरे लिए समस्या हल न करें।

मूल रूप से पुस्तक से सवाल यहां है। "एक ऐसा प्रोग्राम लिखें जो उपयोगकर्ता को 54 कार्ड के डेक से चार कार्ड प्रदर्शित करने के लिए रीफ्रेश बटन पर क्लिक करने देता है।"

मुझे बस बटन पर कुछ मदद की ज़रूरत है। मैं सचमुच बाकी है।

यहां मेरा कोड अभी तक है। मैंने आयात छोड़ दिया है क्योंकि बहुत सारे हैं।

import javafx.application.Application; 
import javafx.scene.Scene; 
import javafx.scene.layout.BorderPane; 
import javafx.scene.layout.HBox; 
import javafx.scene.layout.Pane; 
import javafx.geometry.Insets; 
import javafx.geometry.Pos; 
import javafx.stage.Stage; 
import javafx.scene.image.Image; 
import javafx.scene.image.ImageView; 
import java.awt.Button; 
import java.io.File; 
import java.util.ArrayList; 



public class Cards extends Application 
{ 

    public void start(Stage primaryStage) 
    { 
     ArrayList<String> cards = new ArrayList<>(); //Array list 

     Shuffle(cards); //Shuffles the Cards 

     String file1 = new File("cards" + "/" + cards.get(1) + ".png").toURI().toString(); 
     String file2 = new File("cards" + "/" + cards.get(2) + ".png").toURI().toString(); 
     String file3 = new File("cards" + "/" + cards.get(3) + ".png").toURI().toString(); 
     String file4 = new File("cards" + "/" + cards.get(4) + ".png").toURI().toString(); 

     Pane pane = new HBox(20); //Creates the Box for the Images 
     pane.setPadding(new Insets(5, 5, 5, 5)); //Spreads the Images out 


     Image image = new Image(file1); //Creates the String Image 
     Image image2 = new Image(file2); 
     Image image3 = new Image(file3); 
     Image image4 = new Image(file4); 

     pane.getChildren().add(new ImageView(image)); //Adds the First Image 
     ImageView view1 = new ImageView(image); 
     view1.setFitHeight(100); 
     view1.setFitWidth(100); 

     pane.getChildren().add(new ImageView(image2)); //Adds the Second Image 
     ImageView view2 = new ImageView(image2); 
     view2.setFitHeight(100); 
     view2.setFitWidth(100); 

     pane.getChildren().add(new ImageView(image3)); //Add the Third Image 
     ImageView view3 = new ImageView(image3); 
     view3.setFitHeight(100); 
     view3.setFitWidth(100); 

     pane.getChildren().add(new ImageView(image4)); //Add the Fourth Image 
     ImageView view4 = new ImageView(image4); 
     view4.setFitHeight(100); 
     view4.setFitWidth(100); 


     HBox hbox = new HBox(5); //Creates the Box for the Button 

     Button shuffle = new Button("Shuffle"); //Creates the Button 
     hbox.getChildren().add(shuffle); //Should add the button but doesn't 
     shuffle.addActionListener(e -> //Listener for the button 
     { 
      Shuffle(cards); 
     }); 


     BorderPane pane2 = new BorderPane();/ /Creates the Pane for the Button 
     pane2.setCenter(pane); //Sets the cards in the Center 
     pane2.setBottom(hbox); //Sets the Button on the bottom 

     BorderPane.setAlignment(hbox, Pos.CENTER); 
     hbox.setAlignment(Pos.BOTTOM_CENTER);//Aligns the Button to BOT_CENTER 

     Scene scene = new Scene(pane2); //Creates the Scene 
     primaryStage.setTitle("Cards"); 
     primaryStage.setScene(scene); 
     primaryStage.show(); 


    } 

    public void Shuffle(ArrayList<String> cards) 
    //Allows the cards to Shuffle when called. 
    { 

     for (int i = 0; i <= 53; i++) //Sets the Number of Cards in Deck 
      cards.add(String.valueOf(i+1)); 
     java.util.Collections.shuffle(cards); 
    } 

    public static void main(String[] args) 
    { 
     launch(args); 

    } 

} 
+0

यकीन दें लेकिन अपने कोड में पहले, आप 'करते फलक फलक = नए HBox (20); pane.setPadding (नए इंससेट (5, 5, 5, 5)); 'क्या आपको इस पैटर्न का पालन करने की आवश्यकता है? –

+0

@ScaryWombat मेरा मतलब है कि मुझे वहां फलक की ज़रूरत है क्योंकि यह प्रोग्राम में ठीक से बटन कैसे प्राप्त करें, यह पता लगाने के बाद यह ताज़ा बटन से ऊपर कार्ड सेट करता है। मैं कार्यक्रम में टिप्पणियां जोड़ूंगा। – Vinnie

+0

क्या आप हमें अपना __import__ स्टेटमेंट दिखा सकते हैं? मैं एक स्विंग डेवलपर नहीं हूं, लेकिन मुझे लगता है कि आप एक जावा स्विंग (https://docs.oracle.com/javase/7/docs/api/javax/swing/ButtonModel.html#addActionListener(java का उपयोग कर रहे हैं। awt.event.ActionListener)) बल्कि जावाएफएक्स बटन ... – SSchuette

उत्तर

4

आप अपने import java.awt.Button; साथ AWT-बटन का उपयोग कर रहे हैं, यही कारण है कि आप विधि public void addActionListener(ActionListener l) का उपयोग कर सकते है।

अपना आयात import javafx.scene.control.Button; पर बदलें। इसके अलावा आप (अपने कोड में एनालॉग) निम्नलिखित लैम्ब्डा इस्तेमाल कर सकते हैं:

shuffle.setOnAction((x) -> //Listener for the button 
{ 
    Shuffle(cards); 
}); 

कोशिश :)

नहीं
+0

@Sschutte आप सर मुझे प्यार है: पी बहुत बहुत धन्यवाद! मुझे पता था कि यह कुछ बेवकूफ था। अब बस काम करने के लिए बटन प्राप्त करना होगा: पी – Vinnie

+0

कोई चिंता नहीं है जो स्टैक ओवरफ्लो का विचारधारा है! अगर उत्तर ने आपकी मदद की है, तो कृपया इसे स्वीकार करें। – SSchuette

+1

मेरे दोस्त हो गया। – Vinnie

संबंधित मुद्दे