Re: [問題] JTextField問題
※ 引述《NippleSir (我並不色阿)》之銘言:
: 標題: [問題] JTextField問題
: 時間: Sun May 11 19:49:06 2008
: 剛接觸JAVA不久 想請問一下
: JTextField該如何設計才能像下面這張圖的樣子呢?
: 輸入IP的地方有點格開
: 剛每格輸入滿3個數字時會自動跳到下一格去
: http://0rz.tw/e742g
有兩個做法:
1. 非常 straight forward,用一個 JPanel 放三個 JTextField 和兩個 JLabel
進去,全部的 background 調成白色,JTextField 的 border 變 null (XDDD)
兩個 Label 放一個 . 進去... JPanel 的 border 弄成像 JTextField 一樣...
之後你該知道怎麼做... 想能 reuse 的話做成一個 extend JPanel 就好了 XD
2. 用一個 JTextField, Listen to key event. 每一個 key input 後看看他是否
數字,是數字的話就放進去 current position,否則 ignore,是 . 就跳到下
一格... 什麼下一格呢?就是把 caret 設到後面...
也就是說... JTextField 起始 setText(" . . "), moveCaretPosition(0);
user input : 1 -> numeric OK -> setText("1 . . "),
moveCaretPosition(1);
user input : c -> not numeric -> ignore input
user input : 2 -> numeric OK -> setText("12 . . "),
moveCaretPosition(2);
user input : . -> period OK -> setText("12 . . "),
moveCaretPosition(5);
user input : 4 -> numeric OK -> setText("12 .4 . "),
moveCaretPosition(6);
像這樣子。到了最後再 override getText() 做 checking 和把 space 拿掉就好
可能有點混亂,不好意思...
: → NippleSir:老話ㄧ句 多看API? 05/11 22:40
當初我也有想這有沒有 API 可做,但沒有 XD
之後就想到以上第二個 solution 不過因為我在做公司的工作所以沒回應 :P
--
很多人以為 所以我要 其實我是個
我是大學生 告訴大家 三十一歲的怪叔叔
● ●/ ︿ ︿
/勁\ <勁 ●
ㄨ /\ ㄨ
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 147.8.130.225
推
05/13 19:42, , 1F
05/13 19:42, 1F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):