Re: [問題] 關於JTextField的問題
※ 引述《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)
討論串 (同標題文章)