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