http://ppt.cc/Fbu9
如上圖小弟想做一個溫度轉換的小程式(攝氏轉華氏),
使用到JtextField跟KeyListener,
問題是我的KeyListener完全沒有反應...,
(我也找了資料加上了txtCelsius.requestFocus();還是不行)
不知道是缺少了什麼,
問題點我有注解起來
可以麻煩大大幫我解答嗎?
非常感謝
Code如下:
package Book;
import java.awt.event.*;
import javax.swing.*;
class CTemperature extends JFrame implements KeyListener {
private JTextField txtCelsius, txtFahrenheit;
private JLabel lblCelsius, lblFahrenheit;
CTemperature(){ //GUI介面設定
lblCelsius = new JLabel("攝氏溫度(C)");
lblFahrenheit = new JLabel("華氏溫度(F)");
txtCelsius = new JTextField("0");
txtFahrenheit = new JTextField("0");
lblCelsius.setBounds(10, 20, 100, 20); add(lblCelsius);
lblFahrenheit.setBounds(10, 40, 100, 20); add(lblFahrenheit);
txtCelsius.setBounds(100, 20, 100, 20); add(txtCelsius);
txtFahrenheit.setBounds(100, 40, 100, 20); add(txtFahrenheit);
txtFahrenheit.setEditable(false);
setTitle("溫標轉換"); setLayout(null);
setBounds(100, 100, 220, 120); setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setFocusable(true);
txtCelsius.requestFocus(); //對JTextField Focus?
}
@Override
public void keyTyped(KeyEvent e) { //<==按下Enter鍵將攝氏轉成華氏
int celsius, fahrenheit;
String a;
if(e.getKeyCode() == KeyEvent.VK_ENTER){
celsius = Integer.parseInt(txtCelsius.getText());
fahrenheit = Integer.parseInt(txtFahrenheit.getText());
fahrenheit = (celsius*9)/5+32;
a = Integer.toString(fahrenheit);
txtFahrenheit.setText(a);
}
}
@Override
public void keyPressed(KeyEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void keyReleased(KeyEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
}
public class Patient { //主程式
public static void main(String[] args){
CTemperature temp = new CTemperature();
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.223.8
推
01/05 20:57, , 1F
01/05 20:57, 1F
→
01/05 20:58, , 2F
01/05 20:58, 2F
→
01/05 21:55, , 3F
01/05 21:55, 3F
→
01/05 22:52, , 4F
01/05 22:52, 4F
推
01/06 00:55, , 5F
01/06 00:55, 5F