Re: [問題] 關於JTextField的問題

看板java作者 (淺水中)時間18年前 (2006/06/24 11:54), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/6 (看更多)
※ 引述《zxwxz (zxwxz)》之銘言: : 現在正在做gui的介面 : 由於使用者輸入可能出現很多問題 : 因此想直接把一個JTextField改寫成只能接受某些特定文字或數字 : 但是問題來了就是如果是使用.addKeyListener() : 雖然可以抓的到文字部分 : 但是key的觸發並不是文字改變的觸發 : 因此抓到了event卻不知道怎樣把這個event擋掉 : 例如想擋掉非數字輸入 : 輸入a : 可是卻變成抓到event VK_a : 但是此時text內容還沒變動 : 請問有辦法抓到文字內容被變更的Listener嗎? overwrite processEvent(KeyEvent e) 要達到你要的效果如下程式所示 import javax.swing.*; import java.awt.event.*; public class myTextField extends JTextField{ public myTextField(int col){ super(col); } protected void processKeyEvent(KeyEvent e) { char c = e.getKeyChar(); //如果你有需要的話可以在這裡加你想要的alert //if key is NOT between 0 and 9 //do nothing if(c <48 || c>57) return; else super.processKeyEvent(e); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.105.36 ※ 編輯: calais007 來自: 140.123.105.36 (06/24 11:59) ※ 編輯: calais007 來自: 140.123.105.36 (06/24 12:03) ※ 編輯: calais007 來自: 140.123.105.36 (06/24 12:04)
文章代碼(AID): #14dBTsKc (java)
討論串 (同標題文章)
文章代碼(AID): #14dBTsKc (java)