2017-03-18 11 views
1

私のプロジェクトは電卓です。 TextFieldに0ボタンを登録する0ボタン機能を与えましたが、機能しません。そこに解決策を持っているいくつかのスマートな人々?GUIボタンをクリックしないでくださいjavaFX

public void start(Stage primaryStage) throws Exception{ 
    primaryStage.setTitle("This is a caculator"); 

    TextArea result = new TextArea("This is where the result will be"); result.setPrefSize(480,50); result.setLayoutX(10); result.setLayoutY(65); 
    TextField textField = new TextField(); textField.setPrefSize(480,50); textField.setLayoutX(10); textField.setLayoutY(10); 

    Button button1 = new Button("1");  button1.setPrefSize(100,50);  button1.setTranslateX(30);  button1.setTranslateY(140); 
    Button button2 = new Button("2");  button2.setPrefSize(100,50);  button2.setTranslateX(150);  button2.setTranslateY(140); 
    Button button3 = new Button("3");  button3.setPrefSize(100,50);  button3.setTranslateX(270);  button3.setTranslateY(140); 
    Button button4 = new Button("4");  button4.setPrefSize(100,50);  button4.setTranslateX(30);  button4.setTranslateY(210); 
    Button button5 = new Button("5");  button5.setPrefSize(100,50);  button5.setTranslateX(150);  button5.setTranslateY(210); 
    Button button6 = new Button("6");  button6.setPrefSize(100,50);  button6.setTranslateX(270);  button6.setTranslateY(210); 
    Button button7 = new Button("7");  button7.setPrefSize(100,50);  button7.setTranslateX(30);  button7.setTranslateY(280); 
    Button button8 = new Button("8");  button8.setPrefSize(100,50);  button8.setTranslateX(150);  button8.setTranslateY(280); 
    Button button9 = new Button("9");  button9.setPrefSize(100,50);  button9.setTranslateX(270);  button9.setTranslateY(280); 
    Button button0 = new Button("0");  button0.setPrefSize(100,50);  button0.setTranslateX(150);  button0.setTranslateY(350); 
    Button buttonPlus = new Button("+"); buttonPlus.setPrefSize(100,50);  buttonPlus.setTranslateX(390); buttonPlus.setTranslateY(210); 
    Button buttonMinus = new Button("-"); buttonMinus.setPrefSize(100,50); buttonMinus.setTranslateX(390); buttonMinus.setTranslateY(280); 
    Button buttonMulti = new Button("*"); buttonMulti.setPrefSize(100,50); buttonMulti.setTranslateX(390); buttonMulti.setTranslateY(350); 
    Button buttonDivide = new Button("/"); buttonDivide.setPrefSize(100,50); buttonDivide.setTranslateX(270);buttonDivide.setTranslateY(350); 
    Button buttonClear = new Button("C"); buttonClear.setPrefSize(100,50); buttonClear.setTranslateX(390); buttonClear.setTranslateY(140); 
    Button buttonResult = new Button("="); buttonResult.setPrefSize(100,50); buttonResult.setTranslateX(30); buttonResult.setTranslateY(350); 
    Button virus = new Button("Install the deadly virus"); virus.setPrefSize(450,50); virus.setTranslateX(30);virus.setTranslateY(430); 

    Pane pane = new Pane(textField,result,button1,button2,button3,buttonClear,button4,button5,button6,buttonPlus,button7,button8,button9,buttonMinus,buttonMulti,buttonDivide,button0,buttonResult,virus); 

    button0.setOnAction(event -> textField.setText("0")); 

    Scene scene = new Scene(pane,500,500); 
    scene.getStylesheets().add("sample/css/Style.css"); 
    primaryStage.setScene(scene); 
    primaryStage.show(); 
} 
+0

あなたは「しかしそれはうまくいかない」という言い方を展開しなければならないでしょう...私が見ることができるところから、それはあなたが言うことを正確に行います。 – Goibniu

+0

それは私のために期待どおりに動作します。 'button0'を押すと、' textField'のテキストが「0」に設定されます。あなたは0を続けて追加していないという意味ですか?たとえば、 'textField.setText(textField.getText()+" 0 ")' –

答えて

0

まあ、私は、あなたがそれを追加したいと仮定連結、最後にそれを追加します(すべて同じ意味何でも)

button0.setOnAction(e -> button0.appendText("0"); 
// // // OR // // // 
button0.setOnAction(e -> button0.setText(button0.getText() + "0"); 

は、同じ結果が得られますどちらも、私は最初に好きになるでしょう1つはより良い、よりエレガントです。

関連する問題