hallo,
ich bin auf der suche nach einer methode zum beschränken der eingabelänge auf einem label. ist das möglich?
gruß
linda
hallo,
ich bin auf der suche nach einer methode zum beschränken der eingabelänge auf einem label. ist das möglich?
gruß
linda
Hallo Linda,
ich bin auf der suche nach einer methode zum beschränken der
eingabelänge auf einem label. ist das möglich?
Label? Meinst du TextField, in ein Label kann ich als User nichts eintragen.
Das würde mit einer Implementation des Interfaces javax.swing.text.Document (http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/…) funktionieren, in etwa so:
import javax.swing.text.\*;
import java.awt.\*;
import javax.swing.\*;
public class DocumentTest
{
public static void main(String args[])
{
DocumentTest dt = new DocumentTest();
}
public DocumentTest()
{
JFrame test = new JFrame("Test");
JTextField testField = new JTextField(20);
testField.setDocument(new TestDoc(10));
test.getContentPane().add(testField);
test.pack();
test.show();
test.setDefaultCloseOperation(JFrame.EXIT\_ON\_CLOSE);
}
private class TestDoc extends PlainDocument
{
private int maxLength;
public TestDoc(int length)
{
maxLength = length;
}
public void insertString(int offset, String str, AttributeSet a) throws BadLocationException
{
if (str.length() == 0) return;
if (getLength() + str.length() \> maxLength)
{
JOptionPane.showMessageDialog(null, "Zu viele Zeichen");
}
else
{
super.insertString(offset, str, a);
}
}
}
}
gruß
Heavy
hallo
ich meine tatsächlich ein label. ich weiß, daß der user direkt auf ein label nichts eingeben kann, aber in meinem fall ist es so, daß ich eine tastatur aus buttons habe und deren klickergebnisse werden im label angezeigt. damit will ich verhindern, daß der user etwas anderes als numerische werte eingeben kann. aber das eingegebene sollte eben eine geiwsse längen nicht überschreiten sollen.
gruß
linda
hi ich hoff dir hilft das:
JLabel label = new JLabel();
int laenge = label.getText().length();
if (laenge >= 10) {
//tu nix
}
else {
//füge den text aus deinem Button zu
label.setText(label.getText()+„3“);
//3 is nur beispiel
label.revalidate();
}
danke sehr
es funktioniert!