頁:
[1]
關於JTextField能限定打的字數嗎
如題!!例如說一個格子只能打五格字
這樣子可以嗎
urlPanel.add(new Label("輸入文字但請勿打'*'"));
urlPanel.add(new Label("輸入完請儲存"));
JTextField1 = new JTextField(10); //欄位1
JTextField2 = new JTextField(20); //欄位2
JTextField3 = new JTextField(20); //欄位3
JTextField4 = new JTextField(20); //欄位4
getContentPane().add(mainP, BorderLayout.CENTER);
urlPanel.add(new Label("軟體廠商(ID)"));
urlPanel.add(JTextField1);
urlPanel.add(new Label("軟體名稱(Name)"));
urlPanel.add(JTextField2);
urlPanel.add(new Label("日期(Date)"));
urlPanel.add(JTextField3);
urlPanel.add(new Label("使用次數(Frequency)"));
urlPanel.add(JTextField4);
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div> 不知道是不是你要的也可能有更新的寫法不過還是可以參考一下
轉自jjcipher
透過 JTextField 本身或者其它 Component 的 ActionListener 來處理後續的動作, 其他的 JComponent 能否 get focus 倒不一定重要. 較好的辦法是在一個 Document 的 insertString() 中設定我們的限制條件, 這個 insertString() 只有在輸入值合乎條件時才會去改寫 Document 的 data, 再用 JTextField.setDocument() 將這個 Document assign 給 JTextField. 下面例子中的 NumericTextLimit 就可以做到在 real time 限制 JTextField 只能接受一定長度的數字.
...
import java.awt.*
import javax.swing.*;
import javax.swing.text.*;
public class XXX extends JApplet {
.....
JTextField text = new JTextField(10);
text.setDocument(new NumbericTextLimit(1));
...
// inner class NumericTextLimit
class NumericTextLimit extends PlainDocument {
private int limit;
NumericTextLimit(int limit) {
super();
this.limit = limit;
}
public void insertString (int offset, String str, AttributeSet attr)
throws BadLocationException
{
if (str == null) return;
try {
Integer.parseInt(str);
} catch (NumberFormatException nfe) {
getToolkit().beep();
return;
}
if ((getLength() + str.length()) <= limit) {
//當輸入值合乎條件時才呼叫 super.insertString() 去改寫 Document 的 data.
super.insertString(offset, str, attr);
} else {
getToolkit().beep();
return;
}
}
} // end of inner class NumericTextLimit
} // end of class XXX
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>
頁:
[1]