我正在尝试编写一个将十六进制转换为二进制到十进制的程序,并且最多可以转换为 5 位十六进制数。转换是完全不同的事情,现在我坚持组织 GUI。该接口的标准是它必须具有:一个窗口(一个文本框)用于输入十六进制数,一个窗口输出等效的十进制数,并排成一排的5个窗口用于输出二进制数。每个十六进制数字的二进制等值必须排列在一个数组中,十六进制数可能是数组的第二维,十进制数必须使用“常用算法”计算。我查看了示例和教程,我想出的是基于华氏到摄氏度的转换器。我到目前为止的代码是:
package finalConverter;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Converter extends JFrame {
private JTextField textField;
private JButton convert;
private JLabel hexadecimal, binary, decimal;
public Converter() {
setTitle("Converter");
setSize(400,400);
setLocationRelativeTo(null);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().add(new ConverterPanel());
}
protected class ConverterPanel extends JPanel{
public ConverterPanel(){
setLayout(new GridLayout(3,5));
textField = new JTextField();
convert = new JButton ("Convert");
hexadecimal = new JLabel("Hexadecimal");
binary = new JLabel ("Binary");
decimal = new JLabel ("Decimal");
add(hexadecimal);
add(textField);
add(convert);
add(binary);
add(decimal);
}
}
protected class EventHandler implements ActionListener{
public void actionPerformed(ActionEvent ev){
if(ev.getSource() == convert){
double result = ()
}
}
}
public static void main(String[] args) {
new Converter().setVisible(true);
}
}
当我运行它时,它给了我一个有两列和三行的窗口。这不是我想要的,修改 newGridLayout 中的数字似乎并没有改变任何东西。我应该使用一些不同的布局来获得我想要的结果吗?还是因为我缺少文本字段及其输出二进制数的区域?我尝试使用 pack(); 在转换器窗口中:它只返回了一个较小的两列乘三行 GUI。