java进制转换界面,java进制转换器 图形用户界面 十进制及其相反数诀别转化为二,四,八,十六进制...
时间: 2024-03-23 15:37:36 浏览: 174
好的,我可以为您提供一个Java编写的进制转换器的基本框架,包括界面和转换算法。以下是示例代码:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class NumberConverter extends JFrame implements ActionListener {
private JTextField decimalField;
private JTextField binaryField;
private JTextField octalField;
private JTextField hexadecimalField;
public NumberConverter() {
// 设置窗口标题
setTitle("进制转换器");
// 创建组件
JLabel decimalLabel = new JLabel("十进制:");
decimalField = new JTextField(10);
JLabel binaryLabel = new JLabel("二进制:");
binaryField = new JTextField(10);
JLabel octalLabel = new JLabel("八进制:");
octalField = new JTextField(10);
JLabel hexadecimalLabel = new JLabel("十六进制:");
hexadecimalField = new JTextField(10);
JButton convertButton = new JButton("转换");
// 添加组件到面板
JPanel panel = new JPanel(new GridLayout(5, 2));
panel.add(decimalLabel);
panel.add(decimalField);
panel.add(binaryLabel);
panel.add(binaryField);
panel.add(octalLabel);
panel.add(octalField);
panel.add(hexadecimalLabel);
panel.add(hexadecimalField);
panel.add(new JLabel());
panel.add(convertButton);
// 添加事件监听器
convertButton.addActionListener(this);
decimalField.addActionListener(this);
binaryField.addActionListener(this);
octalField.addActionListener(this);
hexadecimalField.addActionListener(this);
// 设置窗口属性
add(panel);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 150);
setLocationRelativeTo(null);
setVisible(true);
}
// 实现转换算法
public void actionPerformed(ActionEvent e) {
try {
if (e.getSource() == decimalField) {
int decimal = Integer.parseInt(decimalField.getText());
binaryField.setText(Integer.toBinaryString(decimal));
octalField.setText(Integer.toOctalString(decimal));
hexadecimalField.setText(Integer.toHexString(decimal));
} else if (e.getSource() == binaryField) {
int decimal = Integer.parseInt(binaryField.getText(), 2);
decimalField.setText(Integer.toString(decimal));
octalField.setText(Integer.toOctalString(decimal));
hexadecimalField.setText(Integer.toHexString(decimal));
} else if (e.getSource() == octalField) {
int decimal = Integer.parseInt(octalField.getText(), 8);
decimalField.setText(Integer.toString(decimal));
binaryField.setText(Integer.toBinaryString(decimal));
hexadecimalField.setText(Integer.toHexString(decimal));
} else if (e.getSource() == hexadecimalField) {
int decimal = Integer.parseInt(hexadecimalField.getText(), 16);
decimalField.setText(Integer.toString(decimal));
binaryField.setText(Integer.toBinaryString(decimal));
octalField.setText(Integer.toOctalString(decimal));
}
} catch (NumberFormatException ex) {
// 处理非法输入
JOptionPane.showMessageDialog(this, "请输入有效的数字", "错误", JOptionPane.ERROR_MESSAGE);
}
}
public static void main(String[] args) {
new NumberConverter();
}
}
```
这个程序使用Java Swing库创建了一个简单的图形用户界面,有四个文本框用于输入和显示不同进制的数值,并有一个转换按钮。当用户输入一个数字或点击按钮时,程序将执行相应的转换算法,并将结果显示在其他文本框中。
您可以根据自己的需求进行修改和扩展,例如添加其他进制的转换或美化界面。
阅读全文