Java 为什么将float转换为二进制GUI不';不行?
我不知道为什么我的代码总是出错。它符合正确的要求,但当我运行代码时,它会给我一个错误。我首先在控制台中完成了这项工作,但我决定改用一个简单的GUI,我遇到了麻烦。代码如下:我还没有使用其他方法,因为在创建任何其他方法之前,我首先尝试让代码为第一个按钮工作Java 为什么将float转换为二进制GUI不';不行?,java,user-interface,Java,User Interface,我不知道为什么我的代码总是出错。它符合正确的要求,但当我运行代码时,它会给我一个错误。我首先在控制台中完成了这项工作,但我决定改用一个简单的GUI,我遇到了麻烦。代码如下:我还没有使用其他方法,因为在创建任何其他方法之前,我首先尝试让代码为第一个按钮工作 public class ComputingArithmetic extends JPanel { JButton numToBit; JTextField tNumToBit, tNumToBit2, tBitToNum;
public class ComputingArithmetic extends JPanel {
JButton numToBit;
JTextField tNumToBit, tNumToBit2, tBitToNum;
public ComputingArithmetic(){
JButton numToBit = new JButton("Decimal to 32 Bit");
numToBit.addActionListener(new NumToBitListener());
JTextField tNumToBit = new JTextField(3);
JTextField tNumToBit2 = new JTextField(8);
add(numToBit);
add(tNumToBit);
add(tNumToBit2);
setPreferredSize(new Dimension(320, 100));
}
public static void main(String []args){
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
ComputingArithmetic compute = new ComputingArithmetic();
frame.getContentPane().add(compute);
frame.pack();
frame.setVisible(true);
}
private class NumToBitListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
tNumToBit2.setText(DecimalToBit(Float.parseFloat(tNumToBit.getText())));
}
}
private static float BitToDecimal( String Binary ) {
int intBits = Integer.parseInt(Binary, 2);
float myFloat = Float.intBitsToFloat(intBits);
return myFloat;
}
private static String DecimalToBit( float value ) {
if(value > 0) {
int intBits = Float.floatToIntBits(value);
String binary = Long.toBinaryString(intBits);
return "0"+binary;
}
else{
int intBits = Float.floatToIntBits(value);
String binary = Long.toBinaryString(intBits);
return binary;
}
}
private static String HexToBit(String binary){return Long.toHexString(Long.parseLong(binary,2));}
private static String BitToHex(String binary){
Long i = Long.parseLong(binary, 16);
Float f = Float.intBitsToFloat(i.intValue());
return f.toString();
}
}
在构造函数中,您将文本字段分配给局部变量。实例字段保持为空,当调用
ActionListener
时,会导致NullPointerException
JTextField tNumToBit = new JTextField(3);
JTextField tNumToBit2 = new JTextField(8);
应该是:
tNumToBit = new JTextField(3);
tNumToBit2 = new JTextField(8);
你犯了什么错误?如果你在问代码中的错误,你应该在问题中列出错误。老兄,非常感谢!就在我面前。我真是太感谢你了!