用java实现一个能够进行各种进位计数制的转换应用程序GUI
时间: 2024-05-07 13:18:59 浏览: 146
好的,我可以为你提供一个Java GUI程序,它可以进行各种进位计数制的转换。这个程序可以将输入的数字从一个进制转换为另一个进制,支持二进制、八进制、十进制和十六进制之间的转换。
以下是程序的代码:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class NumberConversionGUI extends JFrame implements ActionListener{
private static final long serialVersionUID = 1L;
private JTextField inputField, outputField;
private JComboBox<String> fromCombo, toCombo;
private JButton convertButton;
private JPanel inputPanel, outputPanel, buttonPanel;
public NumberConversionGUI() {
setTitle("Number Conversion");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(new Dimension(500, 150));
setLocationRelativeTo(null);
inputPanel = new JPanel();
inputPanel.setLayout(new GridLayout(1, 2));
inputPanel.add(new JLabel("Input: "));
inputField = new JTextField();
inputPanel.add(inputField);
outputPanel = new JPanel();
outputPanel.setLayout(new GridLayout(1, 2));
outputPanel.add(new JLabel("Output: "));
outputField = new JTextField();
outputField.setEditable(false);
outputPanel.add(outputField);
buttonPanel = new JPanel();
buttonPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
fromCombo = new JComboBox<String>(new String[]{"Binary", "Octal", "Decimal", "Hexadecimal"});
buttonPanel.add(fromCombo);
buttonPanel.add(new JLabel("to"));
toCombo = new JComboBox<String>(new String[]{"Binary", "Octal", "Decimal", "Hexadecimal"});
buttonPanel.add(toCombo);
convertButton = new JButton("Convert");
convertButton.addActionListener(this);
buttonPanel.add(convertButton);
getContentPane().setLayout(new GridLayout(3, 1));
getContentPane().add(inputPanel);
getContentPane().add(outputPanel);
getContentPane().add(buttonPanel);
}
public static void main(String[] args) {
NumberConversionGUI app = new NumberConversionGUI();
app.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
String input = inputField.getText().trim();
int from = fromCombo.getSelectedIndex();
int to = toCombo.getSelectedIndex();
String output = convert(input, from, to);
outputField.setText(output);
}
private String convert(String input, int from, int to) {
try {
switch (from) {
case 0:
return Integer.toBinaryString(Integer.parseInt(input, 2)).toUpperCase();
case 1:
return Integer.toOctalString(Integer.parseInt(input, 8)).toUpperCase();
case 2:
return Integer.toString(Integer.parseInt(input)).toUpperCase();
case 3:
return Integer.toHexString(Integer.parseInt(input, 16)).toUpperCase();
}
} catch (NumberFormatException e) {
return "Invalid input!";
}
return "";
}
}
```
这个程序使用了Java Swing库来创建GUI界面。程序界面包括一个输入框、一个输出框和一个转换按钮。用户可以在下拉框中选择需要转换的进制类型。当用户点击转换按钮时,程序将获取输入框中的数字以及选择的进制类型,并将结果显示在输出框中。
我们使用了一个switch语句来实现不同进制之间的转换。对于二进制、八进制、十进制和十六进制之间的转换,Java的Integer类提供了toBinaryString()、toOctalString()、toString()和toHexString()方法,可以很方便地完成转换。
以上就是一个可以进行各种进位计数制的转换的Java GUI程序。希望能对你有所帮助!
阅读全文