利用JavaFX Scene Builder 2.0制作图形界面
制作完成后,将其保存,会自动保存为一个FXML文件
将fxml文件导入IDEA中,并添加JavaFX相关依赖
右键fxml右键点击此处,可以自动打开SceneBuilder,对应的更新会自动保存到fxml文件
定义启动类,呈现界面
/**
* Main 类,继承自 Application,是 JavaFX 应用程序的入口
*/
public class Main extends Application {
/**
* 主函数,用于启动 JavaFX 应用程序
*
* @param args 命令行参数
*/
public static void main(String[] args) {
// 启动 JavaFX 应用程序,传递命令行参数
launch(args);
}
/**
* 重写 start 方法,用于设置应用程序的初始界面
*
* @param stage 应用程序的主舞台
* @throws Exception 如果在加载 FXML 文件时发生异常
*/
@Override
public void start(Stage stage) throws Exception {
// 设置舞台的标题
stage.setTitle("Lgt的简易计算器");
// 创建一个 FXMLLoader 对象,用于加载 FXML 文件
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("calculator.fxml"));
// 加载 FXML 文件,并将其转换为 Parent 类型的对象
Parent root = fxmlLoader.load();
// 创建一个新的 Scene 对象,并将加载的 FXML 作为其根节点
Scene scene = new Scene(root);
// 将 Scene 设置到舞台上
stage.setScene(scene);
// 显示舞台
stage.show();
}
}
定义控制类,实现具体逻辑
public class Controller {
@FXML
private Label result;
@FXML
private Label expression;
private boolean lastIsNum = false;
private StringBuilder expressionBuilder = new StringBuilder();
@FXML
public void onClicked(ActionEvent event) {
Button button = (Button) event.getTarget();
String text = button.getText();
if (isNumeric(text) || text.equals(".")) {
handleNum