第四次提交

main
李庚 5 months ago
parent 05764464bd
commit 368a6a6487

@ -1,110 +1,111 @@
package java6201.lesson03; package java1292.lesson051292;
import javafx.application.Application; import javafx.application.Application;
import javafx.geometry.Insets; import javafx.geometry.Insets;
import javafx.geometry.Pos; import javafx.geometry.Pos;
import javafx.scene.Scene; import javafx.scene.Scene;import javafx.scene.control.Alert;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType; import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Button; import javafx.scene.control.Alert;
import javafx.scene.control.Label; import javafx.scene.control.Button;
import javafx.scene.control.TextField; import javafx.scene.control.Label;
import javafx.scene.layout.GridPane; import javafx.scene.control.TextField;
import javafx.stage.Stage; import javafx.scene.layout.GridPane;
import javafx.stage.Stage;
public class system extends Application {
public class system extends Application {
private TextField inputTextField;
private TextField sourceBaseTextField; private TextField inputTextField;
private TextField targetBaseTextField; private TextField sourceBaseTextField;
private Label resultLabel; private TextField targetBaseTextField;
private Label resultLabel;
@Override
public void start(Stage primaryStage) { @Override
primaryStage.setTitle("Base Converter");// public void start(Stage primaryStage) {
primaryStage.setTitle("Base Converter");//
GridPane grid = new GridPane();
grid.setAlignment(Pos.CENTER); GridPane grid = new GridPane();
grid.setPadding(new Insets(10)); grid.setAlignment(Pos.CENTER);
grid.setVgap(8);// grid.setPadding(new Insets(10));
grid.setHgap(10); grid.setVgap(8);//
grid.setHgap(10);
Label inputLabel = new Label("输入数字:");//
inputTextField = new TextField(); Label inputLabel = new Label("输入数字:");//
inputTextField = new TextField();
Label sourceBaseLabel = new Label("当前进制 (2-16):");
sourceBaseTextField = new TextField(); Label sourceBaseLabel = new Label("当前进制 (2-16):");
sourceBaseTextField.setText("10"); // Default to decimal sourceBaseTextField = new TextField();
sourceBaseTextField.setText("10"); // Default to decimal
Label targetBaseLabel = new Label("目标进制 (2-16):");
targetBaseTextField = new TextField(); Label targetBaseLabel = new Label("目标进制 (2-16):");
targetBaseTextField.setText("2"); // Default to binary targetBaseTextField = new TextField();
targetBaseTextField.setText("2"); // Default to binary
Button convertButton = new Button("确认");
resultLabel = new Label(); Button convertButton = new Button("确认");
resultLabel = new Label();
grid.add(inputLabel, 0, 0);
grid.add(inputTextField, 1, 0); grid.add(inputLabel, 0, 0);
grid.add(sourceBaseLabel, 0, 1); grid.add(inputTextField, 1, 0);
grid.add(sourceBaseTextField, 1, 1); grid.add(sourceBaseLabel, 0, 1);
grid.add(targetBaseLabel, 0, 2); grid.add(sourceBaseTextField, 1, 1);
grid.add(targetBaseTextField, 1, 2); grid.add(targetBaseLabel, 0, 2);
grid.add(convertButton, 1, 3); grid.add(targetBaseTextField, 1, 2);
grid.add(resultLabel, 1, 4); grid.add(convertButton, 1, 3);
grid.add(resultLabel, 1, 4);
convertButton.setOnAction(event -> convert());
convertButton.setOnAction(event -> convert());
Scene scene = new Scene(grid, 300, 200);
primaryStage.setScene(scene); Scene scene = new Scene(grid, 300, 200);
primaryStage.show(); primaryStage.setScene(scene);
} primaryStage.show();
}
private void convert() {
String input = inputTextField.getText(); private void convert() {
String sourceBaseStr = sourceBaseTextField.getText(); String input = inputTextField.getText();
String targetBaseStr = targetBaseTextField.getText(); String sourceBaseStr = sourceBaseTextField.getText();
String targetBaseStr = targetBaseTextField.getText();
try {
int sourceBase = Integer.parseInt(sourceBaseStr); try {
int targetBase = Integer.parseInt(targetBaseStr); int sourceBase = Integer.parseInt(sourceBaseStr);
int targetBase = Integer.parseInt(targetBaseStr);
if (sourceBase < 2 || sourceBase > 16 || targetBase < 2 || targetBase > 16) {
throw new IllegalArgumentException("Base must be between 2 and 16."); if (sourceBase < 2 || sourceBase > 16 || targetBase < 2 || targetBase > 16) {
} throw new IllegalArgumentException("Base must be between 2 and 16.");
}
long number = Long.parseLong(input, sourceBase);
String result = convertToBase(number, targetBase); long number = Long.parseLong(input, sourceBase);
String result = convertToBase(number, targetBase);
resultLabel.setText("Result: " + result);
} catch (NumberFormatException e) { resultLabel.setText("Result: " + result);
showAlert(AlertType.ERROR, "Invalid Input", "Number format error: " + e.getMessage()); } catch (NumberFormatException e) {
} catch (IllegalArgumentException e) { showAlert(AlertType.ERROR, "Invalid Input", "Number format error: " + e.getMessage());
showAlert(AlertType.ERROR, "Invalid Input", "Illegal argument: " + e.getMessage()); } catch (IllegalArgumentException e) {
} showAlert(AlertType.ERROR, "Invalid Input", "Illegal argument: " + e.getMessage());
} }
}
private String convertToBase(long number, int base) {
if (number == 0) { private String convertToBase(long number, int base) {
return "0"; if (number == 0) {
} return "0";
StringBuilder result = new StringBuilder(); }
char[] digits = "0123456789ABCDEF".toCharArray(); StringBuilder result = new StringBuilder();
while (number > 0) { char[] digits = "0123456789ABCDEF".toCharArray();
result.insert(0, digits[(int) (number % base)]); while (number > 0) {
number /= base; result.insert(0, digits[(int) (number % base)]);
} number /= base;
return result.toString(); }
} return result.toString();
}
private void showAlert(AlertType alertType, String title, String content) {
Alert alert = new Alert(alertType); private void showAlert(AlertType alertType, String title, String content) {
alert.setTitle(title); Alert alert = new Alert(alertType);
alert.setContentText(content); alert.setTitle(title);
alert.setHeaderText(null); alert.setContentText(content);
alert.showAndWait(); alert.setHeaderText(null);
} alert.showAndWait();
}
public static void main(String[] args) {
launch(args); public static void main(String[] args) {
} launch(args);
} }
}

Loading…
Cancel
Save