java计算器界面设计
时间: 2023-10-11 07:23:23 浏览: 117
Java计算器界面设计可以采用Swing或JavaFX等GUI库来实现。以下是一个简单的JavaFX计算器界面设计示例:
1. 创建一个JavaFX项目,使用Scene Builder创建GUI布局。
2. 在Scene Builder中添加一个GridPane布局和一个TextField用于显示计算结果。
3. 在GridPane布局中添加按钮,如数字按钮、运算符按钮、清除按钮等。
4. 设置按钮的样式和布局,可以使用CSS来自定义按钮的样式。
5. 在Java代码中实现计算器逻辑,例如监听按钮的点击事件,并根据按钮的功能执行相应的操作。
6. 将计算结果显示在TextField中。
以下是示例代码:
```java
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
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 resultTextField;
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("Calculator");
// 创建GridPane布局
GridPane gridPane = new GridPane();
gridPane.setAlignment(Pos.CENTER);
gridPane.setHgap(10);
gridPane.setVgap(10);
gridPane.setPadding(new Insets(25, 25, 25, 25));
// 创建TextField
resultTextField = new TextField();
resultTextField.setEditable(false);
resultTextField.setPrefWidth(200);
gridPane.add(resultTextField, 0, 0, 4, 1);
// 创建数字按钮
Button btn1 = new Button("1");
btn1.setOnAction(new NumberButtonHandler("1"));
gridPane.add(btn1, 0, 1);
Button btn2 = new Button("2");
btn2.setOnAction(new NumberButtonHandler("2"));
gridPane.add(btn2, 1, 1);
// 创建运算符按钮
Button btnAdd = new Button("+");
btnAdd.setOnAction(new OperatorButtonHandler("+"));
gridPane.add(btnAdd, 2, 1);
Button btnSubtract = new Button("-");
btnSubtract.setOnAction(new OperatorButtonHandler("-"));
gridPane.add(btnSubtract, 3, 1);
// 创建清除按钮
Button btnClear = new Button("C");
btnClear.setOnAction(new ClearButtonHandler());
gridPane.add(btnClear, 0, 4);
// 创建等号按钮
Button btnEquals = new Button("=");
btnEquals.setOnAction(new EqualsButtonHandler());
gridPane.add(btnEquals, 1, 4, 3, 1);
Scene scene = new Scene(gridPane, 300, 250);
primaryStage.setScene(scene);
primaryStage.show();
}
// 数字按钮事件处理器
class NumberButtonHandler implements EventHandler<ActionEvent> {
private String number;
public NumberButtonHandler(String number) {
this.number = number;
}
@Override
public void handle(ActionEvent event) {
resultTextField.setText(resultTextField.getText() + number);
}
}
// 运算符按钮事件处理器
class OperatorButtonHandler implements EventHandler<ActionEvent> {
private String operator;
public OperatorButtonHandler(String operator) {
this.operator = operator;
}
@Override
public void handle(ActionEvent event) {
resultTextField.setText(resultTextField.getText() + " " + operator + " ");
}
}
// 清除按钮事件处理器
class ClearButtonHandler implements EventHandler<ActionEvent> {
@Override
public void handle(ActionEvent event) {
resultTextField.setText("");
}
}
// 等号按钮事件处理器
class EqualsButtonHandler implements EventHandler<ActionEvent> {
@Override
public void handle(ActionEvent event) {
String expression = resultTextField.getText();
String[] tokens = expression.split(" ");
double result = Double.parseDouble(tokens[0]);
for (int i = 1; i < tokens.length; i += 2) {
String operator = tokens[i];
double operand = Double.parseDouble(tokens[i + 1]);
switch (operator) {
case "+":
result += operand;
break;
case "-":
result -= operand;
break;
}
}
resultTextField.setText(Double.toString(result));
}
}
public static void main(String[] args) {
launch(args);
}
}
```
该示例实现了一个简单的加减法计算器,用户可以通过界面输入表达式并计算结果。
阅读全文