作者superlubu (叔叔你人真好)
看板java
标题Re: [问题] JTextField问题
时间Tue May 13 17:58:46 2008
※ 引述《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
1F:推 NippleSir:Thank you for telling me. ^_^! 05/13 19:42