From 47f26e0216e33337088a654aa6150f99441a9762 Mon Sep 17 00:00:00 2001 From: kexiaonan <1220765335@qq.com> Date: Wed, 16 Oct 2024 10:27:29 +0800 Subject: [PATCH] pyw --- DecimalController.java | 54 ++++++++++++++++++++++++++++++++++++++++++ DecimalConversion.java | 30 +++++++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 DecimalController.java create mode 100644 DecimalConversion.java diff --git a/DecimalController.java b/DecimalController.java new file mode 100644 index 0000000..dca6fd7 --- /dev/null +++ b/DecimalController.java @@ -0,0 +1,54 @@ +package java6239.uml; + +import javafx.event.ActionEvent; +import javafx.fxml.FXML; +import javafx.scene.control.Button; +import javafx.scene.control.ComboBox; +import javafx.scene.control.Label; +import javafx.scene.control.TextField; + +public class DecimalController { + @FXML + private TextField inputField; + @FXML + private ComboBox inputBaseComboBox; // 修改为inputBaseComboBox + @FXML + private ComboBox outputBaseComboBox; // 添加输出进制下拉框 + @FXML + private Label resultLabel; + + // 选择输入进制的方法 + @FXML + private void selectBase(ActionEvent event) { + // 该方法不再需要 + } + + // 转换方法 + @FXML + private void convert() { + String input = inputField.getText(); + String selectedInputBase = inputBaseComboBox.getValue(); // 获取输入进制 + String selectedOutputBase = outputBaseComboBox.getValue(); // 获取输出进制 + + // 检查输入进制和输出进制是否已选择 + if (selectedInputBase == null || selectedOutputBase == null) { + resultLabel.setText("请先选择输入和输出的进制!"); + return; + } + + int inputBase = Integer.parseInt(selectedInputBase); // 解析输入进制 + int outputBase = Integer.parseInt(selectedOutputBase); // 解析输出进制 + + try { + // 将输入的数字转换为十进制 + int decimalValue = Integer.parseInt(input, inputBase); + // 将十进制转换为目标进制 + String result = Integer.toString(decimalValue, outputBase); + resultLabel.setText("转换结果: " + result); + } catch (NumberFormatException e) { + resultLabel.setText("输入的数字不符合选定的输入进制!"); + } catch (Exception e) { + resultLabel.setText("转换过程中出现错误,请检查输入!"); + } + } +} diff --git a/DecimalConversion.java b/DecimalConversion.java new file mode 100644 index 0000000..3cb8029 --- /dev/null +++ b/DecimalConversion.java @@ -0,0 +1,30 @@ +package java6239.uml; + +import javafx.application.Application; +import javafx.fxml.FXMLLoader; +import javafx.scene.Parent; +import javafx.scene.Scene; +import javafx.stage.Stage; + +public class DecimalConversion extends Application { + + @Override + public void start(Stage primaryStage) throws Exception { + // 加载 FXML 文件 + Parent root = FXMLLoader.load(getClass().getResource("DecimalConversion.fxml")); + + // 设置场景 + Scene scene = new Scene(root,400,400); + + // 设置窗口标题 + primaryStage.setTitle("进制转换器"); + + // 设置场景并显示窗口 + primaryStage.setScene(scene); + primaryStage.show(); + } + + public static void main(String[] args) { + launch(args); + } +}