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
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

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

报告相同问题?

悬赏问题

  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝