界面图形化

main
晨雾繁星 1 month ago
parent 655bd0493a
commit 57f11fc727

@ -1,3 +1,7 @@
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Scanner; import java.util.Scanner;
public class BaseConverter { public class BaseConverter {
@ -55,27 +59,75 @@ public class BaseConverter {
int decimalValue = toDecimal(str, sourceBase); int decimalValue = toDecimal(str, sourceBase);
return fromDecimal(decimalValue, targetBase); return fromDecimal(decimalValue, targetBase);
} }
/** /**
* *
*/ */
public static void main(String[] args) { public static void main(String[] args) {
Scanner scanner = new Scanner(System.in); EventQueue.invokeLater(() -> {
new BaseConverterGUI();
});
}
// GUI 类
public static class BaseConverterGUI extends JFrame {
private JTextField inputField;
private JTextField sourceBaseField;
private JTextField targetBaseField;
private JButton convertButton;
private JLabel resultLabel;
// 获取用户输入 public BaseConverterGUI() {
System.out.print("请输入数据(例如 A1: "); setTitle("进制转换器");
String input = scanner.nextLine().toUpperCase(); setSize(400, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null); // 居中显示
setLayout(new GridLayout(5, 2));
System.out.print("请输入源进制数(例如 16: "); // 输入框
int sourceBase = scanner.nextInt(); inputField = new JTextField();
add(new JLabel("输入数据(例如 A1:"));
add(inputField);
System.out.print("请输入目标进制数(例如 2: "); // 源进制输入框
int targetBase = scanner.nextInt(); sourceBaseField = new JTextField();
add(new JLabel("源进制数(例如 16:"));
add(sourceBaseField);
// 进制转换 // 目标进制输入框
String result = convertBase(input, sourceBase, targetBase); targetBaseField = new JTextField();
add(new JLabel("目标进制数(例如 2:"));
add(targetBaseField);
System.out.println("转换结果:" + result); // 输出转换结果 // 转换按钮
convertButton = new JButton("转换");
add(new JLabel());
add(convertButton);
scanner.close(); // 结果标签
resultLabel = new JLabel("转换结果:");
add(new JLabel());
add(resultLabel);
// 添加监听器到按钮
convertButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
String input = inputField.getText().toUpperCase();
int sourceBase = Integer.parseInt(sourceBaseField.getText());
int targetBase = Integer.parseInt(targetBaseField.getText());
String result = convertBase(input, sourceBase, targetBase);
resultLabel.setText("转换结果:" + result);
} catch (Exception ex) {
JOptionPane.showMessageDialog(BaseConverterGUI.this, "输入错误,请检查后重试!", "错误", JOptionPane.ERROR_MESSAGE);
}
}
});
setVisible(true);
}
} }
} }
Loading…
Cancel
Save