编写一个简单的加减计算器,计算器提供数据两个输入框、一个数据输出框、加按钮、减按钮、清除按钮。 输入框供用户输入参与加减计算的两个数值, 输出框设置为不可输入状态,由程序控制输出加减的结果。 加减按钮被点击时,将输入框的加减结果在输出框输出。 清除按钮被点击时,清除输入、输出框的所有内容。 清除按钮再添加一个鼠标进入和鼠标移出行为的处理,当鼠标进入清除按钮时,鼠标变成手的符号,鼠标移出时,鼠标变成箭头符号。Javafx编写
时间: 2024-01-21 12:18:04 浏览: 80
下面是一个简单的Javafx加减计算器的示例代码:
```
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
public class Calculator extends Application {
private TextField num1Field = new TextField();
private TextField num2Field = new TextField();
private TextField resultField = new TextField();
@Override
public void start(Stage primaryStage) {
GridPane grid = new GridPane();
grid.setHgap(10);
grid.setVgap(10);
grid.setPadding(new Insets(10, 10, 10, 10));
num1Field.setPromptText("Enter first number");
num2Field.setPromptText("Enter second number");
resultField.setEditable(false);
Button addButton = new Button("+");
addButton.setOnAction(e -> addNumbers());
Button subButton = new Button("-");
subButton.setOnAction(e -> subNumbers());
Button clearButton = new Button("Clear");
clearButton.setOnAction(e -> clearFields());
clearButton.setOnMouseEntered(e -> clearButton.setStyle("-fx-cursor: hand;"));
clearButton.setOnMouseExited(e -> clearButton.setStyle("-fx-cursor: arrow;"));
grid.add(num1Field, 0, 0);
grid.add(num2Field, 1, 0);
grid.add(resultField, 2, 0);
grid.add(addButton, 0, 1);
grid.add(subButton, 1, 1);
grid.add(clearButton, 2, 1);
Scene scene = new Scene(grid, 300, 100);
primaryStage.setScene(scene);
primaryStage.show();
}
private void addNumbers() {
try {
double num1 = Double.parseDouble(num1Field.getText());
double num2 = Double.parseDouble(num2Field.getText());
resultField.setText(String.valueOf(num1 + num2));
} catch (NumberFormatException ex) {
resultField.setText("Invalid input");
}
}
private void subNumbers() {
try {
double num1 = Double.parseDouble(num1Field.getText());
double num2 = Double.parseDouble(num2Field.getText());
resultField.setText(String.valueOf(num1 - num2));
} catch (NumberFormatException ex) {
resultField.setText("Invalid input");
}
}
private void clearFields() {
num1Field.clear();
num2Field.clear();
resultField.clear();
}
public static void main(String[] args) {
launch(args);
}
}
```
在这个示例中,我们使用了JavaFX的布局管理器GridPane来创建一个简单的界面。界面包括两个输入框、一个输出框和三个按钮。每个按钮都有一个事件处理程序,可以在用户单击它们时执行相应的操作。在计算加法和减法时,我们使用Double.parseDouble方法将输入的文本转换为数字。如果输入无效,我们将在输出框中显示错误消息。最后,在清除按钮上添加了鼠标进入和鼠标移出的处理程序,以改变鼠标的外观。
阅读全文