0

私のコードはユーザーに入力を求めます。次に、温度を変換します。シンプルなはずですが、私のコードは機能していません。それは私のラベル3を出力しません。何もしません。それが私のコードで唯一の問題です。修正方法がわかりません

  import javax.swing.*;


   public class FahrenheitPanel extends JPanel

  {

 private JLabel lable1;
private JLabel lable2;  
private JLabel lable3;
 private JTextField fahrenheit;
   public FahrenheitPanel()

  {

  lable1 = new JLabel ("Enter Fahrenheit temperature:");

  lable2 = new JLabel ("Temperature in Celsius: ");

  fahrenheit = new JTextField (5);

  fahrenheit.addActionListener (new TempListener());
  add (lable1);
    add (fahrenheit);
    add (lable2);      


  setPreferredSize (new Dimension(300, 75));

}

private class TempListener implements ActionListener

{
  public void actionPerformed (ActionEvent event)

  {

     int fahrenheitTemp, celsiusTemp;

     String text = fahrenheit.getText();
     fahrenheitTemp = Integer.parseInt (text);

     celsiusTemp = (fahrenheitTemp-32) * 5/9;
     lable3.setText(Integer.toString (celsiusTemp));  
        add ( lable3 );                           
  }
}


   public static void main (String[] args)
  {
    JFrame frame = new JFrame ("Fahrenheit to Celsius Converter");

     frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
     FahrenheitPanel panel = new FahrenheitPanel();
     frame.getContentPane().add(panel);
     frame.pack();
     frame.setVisible(true);
  }
     }
4

3 に答える 3

2

最初に、整数値を倍精度に変換しました。これは、2 つの数値が含まれている可能性があるためです。次に、クラスにラベルを追加していません。これが問題です...プログラムを実行してください。問題がある場合は、お気軽にお問い合わせください。自分

    import java.awt.Dimension;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;

    import javax.swing.*;


    public class FahrenheitPanel extends JPanel

        {

            private JLabel lable1;
            private JLabel lable2;  
            private JLabel lable3;
            private JTextField fahrenheit;

    public FahrenheitPanel()

        {

            lable1 = new JLabel ("Enter Fahrenheit temperature:");

        lable2 = new JLabel ("Temperature in Celsius: ");

        lable3 = new JLabel("");
        fahrenheit = new JTextField (5);

        fahrenheit.addActionListener ((ActionListener) new TempListener());
        add (lable1);
        add (fahrenheit);
        add (lable2);      
        add(lable3);

        setPreferredSize (new Dimension(250, 75));

        }

    private class TempListener implements ActionListener

        {
            public void actionPerformed (ActionEvent event)

                {

                    double fahrenheitTemp, celsiusTemp;

                    String text = fahrenheit.getText();
                    fahrenheitTemp = Double.parseDouble (text);

                    celsiusTemp = ((fahrenheitTemp-32) * 5/9);
                    lable3.setText(Double.toString (celsiusTemp));  

                }
        }


public static void main (String[] args)
{
      JFrame frame = new JFrame ("Fahrenheit to Celsius Converter");

      frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
      FahrenheitPanel panel = new FahrenheitPanel();
      frame.getContentPane().add(panel);
      frame.pack();
      frame.setVisible(true);
}
}
于 2013-05-03T15:09:10.027 に答える