javafx-关于JavaFX中按钮事件

问题描述

关于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);
}

}

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

解决方案

JAVAFX-事件
jqgrid 按钮事件
JAVAFX ComboBox的选中事件

时间: 2024-07-29 13:37:04

javafx-关于JavaFX中按钮事件的相关文章

异常处理:android中添加按钮事件,出现NullPointerException

问题描述 异常处理:android中添加按钮事件,出现NullPointerException 解决方案 在maincsactivity的oncreate的72行找,有没有对象为null 解决方案二: 对象为空,要么你的按钮对象还没初始化,要么点击代码里有空对象,你调试一下便知 解决方案三: 空指针异常,没什么难找的,Debug一下即可很快找到: 解决方案四: 空指针异常,按钮对象没有初始化 解决方案五: 可能你声明了一个View,但是你没有findViewById,或者findViewById

asp.net中ajax技术是否可以实现停止服务器端正在运行的按钮事件

问题描述 asp.net中ajax技术是否可以实现停止服务器端正在运行的按钮事件 给予B/S的webform项目 在服务器端有一个按钮事件 执行时间较长 所以就添加了一个按钮用来可以随时停止正在运行的耗时较长的按钮 问题是那个正在服务器端运行的按钮是否可以被其他按钮终止呢?求解答 解决方案 不可以.首先将长时间操作的任务放在按钮事件中就是错误的.按钮事件在页面回传前调用,ajax回发根本在页面加载后.你应该用消息队列.后台服务去执行长时间的任务. 解决方案二: 这个理论上是可以实现的. 服务器端

android中添加按钮事件的方法

  解决方法: 1. 在res/layout中的activity_main.xml添加一个按钮,命名为button1. 2. 在MainActivity.java中添加按钮事件绑定: View btn1 = this.findViewById(R.id.button1); btn1.setOnClickListener(new ButtonClickListener()); 3. 重写ButtonClickListener函数: private class ButtonClickListener

gui-如何在JFrame中通过按钮事件载入不同面板?

问题描述 如何在JFrame中通过按钮事件载入不同面板? 我写了一个程序,想实现按oval按钮时,绘制圆形,按rectangle时,绘制矩形. 所以我写了两个JPanel的子类oval类和rectangle类.然后在JFrame中 想通过点击 不同按钮实现不同jpanel类的调用,该如何实现? jframe子类 public class DrawShapeByMouse extends JFrame { //add two buttons private JButton button1 = ne

紧急!!!SOS!按钮事件中跳转页面出错

问题描述 我在按钮事件中用Response.Redirect("Show.aspx");来跳转页面,但是在跳转的时候久出错了,以下是出错页面,请问怎么解决?"/UI"应用程序中的服务器错误.--------------------------------------------------------------------------------回发或回调参数无效.在配置中使用<pagesenableEventValidation="true&qu

android-安卓中按钮点击事件无响应

问题描述 安卓中按钮点击事件无响应 我在xml中写了一个按钮,对这个按钮设置了setOnClickListener事件,运行时点击按钮没反应,小白一枚,特来请教 解决方案 Button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent mIntent = new Intent(); mIntent.setClass(MainActivity.this, R

多线程-c#如何在子线程中获取form主线程中按钮点击事件

问题描述 c#如何在子线程中获取form主线程中按钮点击事件 如何在子线程中获取form主线程中按钮点击事件,子线程B中定义了一个新类classnew,获取点击事件也是在新类classnew中,并且获取完点击事件以后执行此类中下边的任务. 解决方案 你可以主线程中得到点击事件后,发送一个Event事件通知等告诉子线程,然后子线程就可以进行后面的任务处理 解决方案二: 不知道你说的获取事件是什么意思,是事件挂钩还是获得挂钩的事件处理函数的委托.请你说清楚. 解决方案三: 主线程中得到点击事件后,发

关于java界面中按钮执行事件的问题

问题描述 关于java界面中按钮执行事件的问题 我用JAVA在一个包中写了MultiThreadMatrix.java和Jiemian.java.MultiThreadMatrix.java是一个并行矩阵计算程序,怎么让Jiemian.java中的一个按钮b3,点击b3执行MultiThreadMatrix.java,并将结果输出在Jiemian.java的文本框中. MultiThreadMatrix.java的打印的结果是,先让你输入想建立的线程个数,然后输出每个线程计算哪一行. 下面是Mu

Android中activity跳转按钮事件的四种写法_Android

具体实现代码: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 方法1. 采用实现OnClickListener接口的类 ((Button) findViewById(R.i