Javaで華氏を摂氏に変換できるプログラムを作ろうとしています。プログラムには、入力用に 2 つのラベルと 1 つの TextField があります。ユーザーが温度を入力して を押すと、温度を変換したいと思いますEnter。そのために、テキスト フィールドにキー リスナーを追加しましたが、機能しません。リスナーを押すEnterと、まったく発火しません。
そして、これが私のコードです。
public class TempConv extends JFrame{
private JLabel info;
private JLabel result;
private JTextField input;
private String outcome;
public TempConv(){
super("Temperature Converter");
setLayout(new BorderLayout());
info = new JLabel("Enter Fahrenheit Temperature");
add(info, BorderLayout.NORTH);
input = new JTextField(12);
add(input, BorderLayout.CENTER);
result = new JLabel("Temperature in Celcius is: " + outcome);
add(result, BorderLayout.SOUTH);
input.addKeyListener(
new KeyListener(){
public void keyPressed(KeyEvent e){
if(e.getKeyChar() == KeyEvent.VK_ENTER){
outcome = input.getText();
}
}
}
);
}
public static void main(String[] args) {
TempConv ftc = new TempConv();
ftc.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ftc.setLocationRelativeTo(null);
ftc.setSize(370, 100);
ftc.setVisible(true);
}
}
編集: ActionListener で動作しますが、匿名クラスで行う必要があります。匿名クラスがないと、Enter.