我正在尝试制作一个可以在java中将华氏温度转换为摄氏度的程序。在程序中,我有 2 个标签和 1 个文本字段用于输入。我想在用户输入温度并按下时转换温度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.