CSU_ICELEE 2016-04-10 02:13 采纳率: 0%
浏览 11097

关于JavaFX中按钮事件

import javafx.application.*;
import javafx.geometry.Pos;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.FlowPane;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.Pane;
import javafx.scene.text.*;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;

public class Calculate extends Application{

public void start(Stage primaryStage)
{
    TextField tfNum1 = new TextField();
    tfNum1.setMaxWidth(50);
    TextField tfNum2 = new TextField();
    tfNum2.setMaxWidth(50);
    TextField tfResult = new TextField();
    tfResult.setMaxWidth(50);

    Text num1 = new Text("Number1:");
    Text num2 = new Text("Number2:");
    Text result = new Text("Result:");

    Button btAdd = new Button("Add");
    Button btSubtract = new Button("Subtract");
    Button btMultiply = new Button("Multiply");
    Button btDivide = new Button("Divide");


    GridPane gridPane = new GridPane();
    gridPane.add(num1, 0, 0);
    gridPane.add(tfNum1, 1, 0);
    gridPane.add(num2, 2, 0);
    gridPane.add(tfNum2, 3, 0);
    gridPane.add(result, 4, 0);
    gridPane.add(tfResult, 5,0);
    FlowPane pane = new FlowPane();
    pane.getChildren().addAll(btAdd,btSubtract,btMultiply,btDivide);
    pane.setHgap(5);
    pane.setAlignment(Pos.CENTER);
    BorderPane borderPane = new BorderPane();
    borderPane.setTop(gridPane);
    borderPane.setCenter(pane);


    btAdd.setOnAction(oa->{
        double n1 = Double.parseDouble(tfNum1.getText());
        double n2 = Double.parseDouble(tfNum2.getText());
        double  r =n1+n2;
        tfResult.setText(String.valueOf(r));
    });
    btSubtract.setOnAction(oa->{
        double n1 = Double.parseDouble(tfNum1.getText());
        double n2 = Double.parseDouble(tfNum2.getText());
        double  r =n1-n2;
        tfResult.setText(String.valueOf(r));
    });
    btMultiply.setOnAction(oa->{
        double n1 = Double.parseDouble(tfNum1.getText());
        double n2 = Double.parseDouble(tfNum2.getText());
        double  r =n1*n2;
        tfResult.setText(String.valueOf(r));
    });
    btDivide.setOnAction(oa->{
        double n1 = Double.parseDouble(tfNum1.getText());
        double n2 = Double.parseDouble(tfNum2.getText());
        if(n2==0)
        {
            Button btOK = new Button("OK");
            Text text1 = new Text("除数不能为0");
            GridPane pane2 = new GridPane();
            pane2.add(text1, 0, 0);
            pane2.add(btOK, 1, 1);

            Scene scene2 = new Scene(pane2,150,40);
            Stage prompt = new Stage();
            prompt.setScene(scene2);
            prompt.setTitle("error");
            prompt.show();

            btOK.setOnAction(e->{
                prompt.close();
            });
        }
        else{
        double  r =n1/n2;
        tfResult.setText(String.valueOf(r));}
    });

    Scene scene = new Scene(borderPane,320,50);
    primaryStage.setTitle("Calculator");
    primaryStage.setScene(scene);
    primaryStage.show();

}

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Application.launch(args);
}

}

以上是我的代码,我想问可不可以设置一个方法,判断是哪个按钮被按下呢?除了用鼠标的坐标判断。

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-21 01:55
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!