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 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用