2017-02-05 11 views
-3

なぜ私は自分のコードでエラーが発生し続けるのか分かりません。それは正しく遵守しますが、コードを実行するとエラーになります。私はコンソールでこれを最初に完了しましたが、代わりにシンプルなGUIを使用することにしました。コードは次のとおりです。他のメソッドを使用する前に、最初にボタンを操作するコードを取得しようとしているためです。なぜfloatをバイナリGUIに変換できないのですか?

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(); 
    } 
} 
+1

あなたはどのようなエラーが発生していますか?コード内のエラーについて質問する場合は、質問にエラーを記載する必要があります。 –

答えて

2

あなたのコンストラクタでは、テキストフィールドをローカル変数に割り当てます。インスタンスフィールドはnullのままで、ActionListenerが呼び出されるとNullPointerExceptionが返されます。

JTextField tNumToBit = new JTextField(3); 
JTextField tNumToBit2 = new JTextField(8); 

は次のようになります。

tNumToBit = new JTextField(3); 
tNumToBit2 = new JTextField(8); 
+0

男は本当にありがとう!それは私の顔の前で正しかった。私は十分にあなたに感謝できません! – silversk8terz

関連する問題