用java实现一个能够进行各种进位计数制的转换应用程序事件处理功能
时间: 2024-05-11 18:18:35 浏览: 92
以下是一个简单的Java代码实现,可以进行进制转换:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class BaseConverter extends JFrame implements ActionListener {
private JTextField input;
private JTextField output;
private JComboBox<String> fromBase;
private JComboBox<String> toBase;
public BaseConverter() {
super("Base Converter");
// 设置界面
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 150);
setLocationRelativeTo(null);
// 布局
JPanel inputPanel = new JPanel(new FlowLayout());
inputPanel.add(new JLabel("Input:"));
input = new JTextField(20);
inputPanel.add(input);
JPanel outputPanel = new JPanel(new FlowLayout());
outputPanel.add(new JLabel("Output:"));
output = new JTextField(20);
output.setEditable(false);
outputPanel.add(output);
JPanel basePanel = new JPanel(new GridLayout(2, 2));
basePanel.add(new JLabel("From Base:"));
fromBase = new JComboBox<>(new String[] {"2", "8", "10", "16"});
basePanel.add(fromBase);
basePanel.add(new JLabel("To Base:"));
toBase = new JComboBox<>(new String[] {"2", "8", "10", "16"});
basePanel.add(toBase);
JPanel buttonPanel = new JPanel(new FlowLayout());
JButton convertButton = new JButton("Convert");
convertButton.addActionListener(this);
buttonPanel.add(convertButton);
// 添加组件
Container contentPane = getContentPane();
contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.Y_AXIS));
contentPane.add(inputPanel);
contentPane.add(outputPanel);
contentPane.add(basePanel);
contentPane.add(buttonPanel);
// 显示界面
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
try {
// 获取输入的值
String inputStr = input.getText().trim();
// 获取进制
int from = Integer.parseInt((String) fromBase.getSelectedItem());
int to = Integer.parseInt((String) toBase.getSelectedItem());
// 将输入的值转换成十进制
int decimal = Integer.parseInt(inputStr, from);
// 将十进制值转换成目标进制的值
String outputStr = Integer.toString(decimal, to);
// 显示结果
output.setText(outputStr);
} catch (NumberFormatException ex) {
// 如果输入的值非法,则提示错误
JOptionPane.showMessageDialog(this, "Invalid input!", "Error", JOptionPane.ERROR_MESSAGE);
}
}
public static void main(String[] args) {
new BaseConverter();
}
}
```
在这个程序中,我们使用了 Java 的 Swing 库来构建图形用户界面。在 `actionPerformed` 方法中,我们获取输入的值并将其转换成十进制,然后再将十进制值转换成目标进制的值,并将其显示在输出文本框中。如果输入的值非法,则会弹出一个错误提示框。
阅读全文