[問題] 請問關於JTextField跟KeyListener

看板java作者時間13年前 (2013/01/05 20:47), 編輯推噓2(203)
留言5則, 2人參與, 最新討論串1/1
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
你JTextField沒有加Listener
01/05 20:57, 1F

01/05 20:58, , 2F
txtCelsius.addKeyListener(this); 剩下還有一些bug自己想想
01/05 20:58, 2F

01/05 21:55, , 3F
我加上去還是出現UnsupportedOperationException例外...
01/05 21:55, 3F

01/05 22:52, , 4F
感謝Mije大大 我放在KeyPressed就行了
01/05 22:52, 4F

01/06 00:55, , 5F
你另外兩個沒用的空著就好,不用算例外
01/06 00:55, 5F
文章代碼(AID): #1Gw23M5F (java)