少しのテストアプリケーションでは、数字だけを受け入れるTextFieldが必要です。さらに、ユーザーは0〜255の数字のみを入力できる必要があります。これまでのところ私は、この発見:JTextfieldは0〜255の数字のみを受け入れます。
import javax.swing.JTextField;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.PlainDocument;
/**
* A JTextField that accepts only integers.
*
* @author David Buzatto
*/
public class IntegerField extends JTextField {
public IntegerField() {
super();
}
public IntegerField(int cols) {
super(cols);
}
@Override
protected Document createDefaultModel() {
return new UpperCaseDocument();
}
static class UpperCaseDocument extends PlainDocument {
@Override
public void insertString(int offs, String str, AttributeSet a)
throws BadLocationException {
if (str == null) {
return;
}
char[] chars = str.toCharArray();
boolean ok = true;
for (int i = 0; i < chars.length; i++) {
try {
Integer.parseInt(String.valueOf(chars[i]));
} catch (NumberFormatException exc) {
ok = false;
break;
}
}
if (ok) {
super.insertString(offs, new String(chars), a);
}
}
}
を私はループのために追加3桁含まれ、以下のように数字だけが
if(super.getLength() == 3) {
ok = false;
System.out.println("tooLong");
break;
}
を入力することができますしかし、どのように私は、最大入力値を設定することができますか?ユーザーは0〜255の数字だけを入力してください。事前
入力> = 0 &&入力<= 255? – eldo
私は知っていますが、これを実装するにはどのようにすればよいですか?どこで入力を取得するのですか? super.length()は簡単でしたが、どうすればsuper.getInput super.getTextを作成できますか? – KilledByCheese
を参照してくださいhttp://stackoverflow.com/a/13424140/1076463 – Robin