import javafx.application.Application; import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.TextField; import javafx.scene.layout.GridPane; import javafx.stage.Stage; public class BaseConverterApp extends Application { @Override public void start(Stage primaryStage) { GridPane grid = new GridPane(); grid.setPadding(new Insets(10, 10, 10, 10)); grid.setVgap(8); grid.setHgap(10); // 输入原始数值 Label lblNumber = new Label("数值:"); TextField txtNumber = new TextField(); grid.add(lblNumber, 0, 0); grid.add(txtNumber, 1, 0); // 输入原始进制 Label lblFromBase = new Label("原始进制:"); TextField txtFromBase = new TextField(); grid.add(lblFromBase, 0, 1); grid.add(txtFromBase, 1, 1); // 输入目标进制 Label lblToBase = new Label("目标进制:"); TextField txtToBase = new TextField(); grid.add(lblToBase, 0, 2); grid.add(txtToBase, 1, 2); // 转换按钮 Button btnConvert = new Button("转换"); grid.add(btnConvert, 1, 3); // 显示结果 Label lblResult = new Label("结果:"); grid.add(lblResult, 1, 4); // 设置场景 Scene scene = new Scene(grid, 300, 250); primaryStage.setScene(scene); primaryStage.setTitle("进制转换器"); // 添加按钮点击事件处理器 btnConvert.setOnAction(event -> { String number = txtNumber.getText(); int fromBase = Integer.parseInt(txtFromBase.getText()); int toBase = Integer.parseInt(txtToBase.getText()); try { long decimal = Long.parseLong(number, fromBase); String converted = Long.toString(decimal, toBase).toUpperCase(); lblResult.setText("结果: " + converted); } catch (NumberFormatException e) { lblResult.setText("错误: 无效的输入或进制。"); } }); primaryStage.show(); } public static void main(String[] args) { launch(args); } }