.设计一个程序,该程序拥有一个JCamboBox 控件,并且JCambaBox 有选项“Binary”“Octa”“Hex”,分别表示“二进制”“八进制” “十大进制”,在选择相应进制后,通过JTextField 输入一个十进制 数,单击一个按钮
时间: 2023-09-08 20:17:31 浏览: 166
控制JTextField的输入
,程序将会把输入的十进制数转换成对应的进制数并输出在另一个JTextField 中。
你可以参考下面的代码实现:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class NumberConverter extends JFrame implements ActionListener {
private JComboBox<String> comboBox;
private JTextField inputField, outputField;
private JButton convertButton;
public NumberConverter() {
super("Number Converter");
// 创建控件
comboBox = new JComboBox<String>();
comboBox.addItem("Binary");
comboBox.addItem("Octa");
comboBox.addItem("Hex");
inputField = new JTextField(10);
outputField = new JTextField(10);
outputField.setEditable(false);
convertButton = new JButton("Convert");
convertButton.addActionListener(this);
// 添加控件到窗口
JPanel panel = new JPanel(new GridLayout(2, 2, 10, 10));
panel.add(new JLabel("Input:"));
panel.add(inputField);
panel.add(new JLabel("Output:"));
panel.add(outputField));
getContentPane().add(comboBox, BorderLayout.NORTH);
getContentPane().add(panel, BorderLayout.CENTER);
getContentPane().add(convertButton, BorderLayout.SOUTH);
// 设置窗口属性
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 150);
setLocationRelativeTo(null);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
try {
int decimal = Integer.parseInt(inputField.getText());
if (comboBox.getSelectedItem().equals("Binary")) {
outputField.setText(Integer.toBinaryString(decimal));
} else if (comboBox.getSelectedItem().equals("Octa")) {
outputField.setText(Integer.toOctalString(decimal));
} else if (comboBox.getSelectedItem().equals("Hex")) {
outputField.setText(Integer.toHexString(decimal));
}
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(this, "Invalid input", "Error", JOptionPane.ERROR_MESSAGE);
}
}
public static void main(String[] args) {
new NumberConverter();
}
}
```
运行程序,选择相应的进制,输入一个十进制数,点击“Convert”按钮,就可以将其转换成对应的进制数并输出到另一个文本框中。
阅读全文