使用 JavaFX 设计计算器界面

JavaFX 是 Java 的一个图形用户界面(GUI)框架,它能够帮助开发者创建现代化的桌面应用程序。在本文中,我们将一起探讨如何利用 JavaFX 来设计一个简单的计算器界面,并提供相关代码示例,以帮助您更好地理解这一过程。

1. 环境准备

在开始之前,请确保您的电脑上已安装 JDK 和 JavaFX SDK。可以在 [Gluon]( 网站上下载最新的 JavaFX 版本。配置好 JavaFX 后,您就可以开始编写代码了。

2. 计算器界面设计

首先,我们需要设定计算器的基本布局。这包括显示区域和基本的操作按钮,比如数字键和运算符。我们的程序结构如下所示:

flowchart TD
    A[开始] --> B[创建主要舞台]
    B --> C[设置布局]
    C --> D[添加显示区域]
    D --> E[添加按钮]
    E --> F[定义按钮操作]
    F --> G[展示界面]
    G --> H[结束]

3. 代码示例

下面是我们计算器界面的简单实现代码。我们将使用 VBoxGridPane 来布局界面,并使用按钮来执行基本计算。

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.scene.layout.VBox;
import javafx.stage.Stage;

public class Calculator extends Application {

    private TextField display;

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("计算器");

        display = new TextField();
        display.setEditable(false);
        display.setStyle("-fx-font-size: 24px;");

        GridPane buttonGrid = createButtonGrid();

        VBox vBox = new VBox(10, display, buttonGrid);
        vBox.setPadding(new Insets(10));

        Scene scene = new Scene(vBox, 300, 400);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    private GridPane createButtonGrid() {
        GridPane grid = new GridPane();
        grid.setHgap(10);
        grid.setVgap(10);
        
        String[] buttonLabels = {
                "7", "8", "9", "/",
                "4", "5", "6", "*",
                "1", "2", "3", "-",
                "0", "C", "=", "+"
        };

        int index = 0;
        for (int row = 0; row < 4; row++) {
            for (int col = 0; col < 4; col++) {
                Button button = new Button(buttonLabels[index]);
                button.setPrefSize(60, 60);
                button.setOnAction(e -> handleButtonClick(button.getText()));
                grid.add(button, col, row);
                index++;
            }
        }

        return grid;
    }

    private void handleButtonClick(String text) {
        if ("C".equals(text)) {
            display.clear();
        } else if ("=".equals(text)) {
            // 此处应添加计算逻辑
            display.setText("结果计算未实现"); // 完成计算逻辑
        } else {
            display.appendText(text);
        }
    }

    public static void main(String[] args) {
        launch(args);
    }
}

代码解析

  1. 创建主舞台: 使用 Stage 来设定应用窗口的标题和场景。
  2. 设置布局: 使用 VBoxGridPane 来构建界面框架。
  3. 添加显示区域: 创建一个不可编辑的 TextField 用于显示输入和结果。
  4. 添加按钮: 创建数字按钮和运算符按钮,并注册其事件。
  5. 定义按钮操作: 在 handleButtonClick 方法中处理每个按钮的点击事件。

结尾

通过以上的例子,我们成功地创建了一个简单的计算器界面。尽管当前的示例只实现了基本的输入和显示功能,您可以在此基础上扩展计算逻辑,比如实现运算符的实际计算功能。通过不断的实践和优化,相信您会对 JavaFX 有更深入的理解。如果您对这个项目有任何疑问或想要改进的建议,欢迎提出。让我们一起探索更多的 JavaFX 可能性吧!