我最終大大簡化了我的方法。我只是修改了第二個類文件來獲取按鈕,並完全擺脫了第三個文件。現在操作按鈕和按下鍵盤上的返回鍵都會導致程序完成計算。這確實不難,只需要使用相同的方法,但需要使用不同類型的偵聽器。謝謝!創建執行功能的按鈕
import javax.swing.JFrame;
public class Fahrenheit
{
public static void main (String[] args)
{
JFrame frame = new JFrame ("Fahrenheit");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
FahrenheitPanel panel = new FahrenheitPanel();
frame.getContentPane().add(panel);
frame.pack();frame.setVisible(true);
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class FahrenheitPanel extends JPanel
{
private JLabel inputLabel, outputLabel, resultLabel;
private JTextField fahrenheit;
private JButton push;
public FahrenheitPanel()
{
inputLabel = new JLabel ("Enter Fahrenheit temperature:");
outputLabel = new JLabel ("Temperature in Celsius: ");
resultLabel = new JLabel ("---");
push = new JButton ("Convert");
fahrenheit = new JTextField (5);
fahrenheit.addActionListener (new TempListener());
push.addActionListener (new ButtonListener());
add (inputLabel);
add(fahrenheit);
add (outputLabel);
add (resultLabel);
add (push);
setPreferredSize (new Dimension(300,75));
setBackground (Color.yellow);
}
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;
resultLabel.setText (Integer.toString (celsiusTemp));
}
}
private class ButtonListener implements ActionListener
{
public void actionPerformed (ActionEvent event)
{
int fahrenheitTemp, celsiusTemp;
String text = fahrenheit.getText();
fahrenheitTemp = Integer.parseInt (text);
celsiusTemp = (fahrenheitTemp-32) * 5/9;
resultLabel.setText (Integer.toString (celsiusTemp));
}
}
}
*「但第三個是我需要一些指導的地方」*嗯......「提出問題」。那對於指導如何?此外,爲了更快提供更好的幫助,請發佈[SSCCE](http://sscce.org/)。 –
好點。下次會做。感謝您的鏈接。 – Lou44