Zum Inhalt springen

Zeichenbegrenzung in JEditorPane


shad0w

Empfohlene Beiträge

  • 2 Wochen später...

Na du fragst einfach ab ob die gedrückte Taste eine Zifferntaste war!


public void keyPressed(KeyEvent e) {

	int kCT = e.getKeyCode();

	if(kCT == KeyEvent.VK_0 ||

		kCT == KeyEvent.VK_1 ||

		kCT == KeyEvent.VK_2 ||

		kCT == KeyEvent.VK_3 ||

		kCT == KeyEvent.VK_4 ||

		kCT == KeyEvent.VK_5 ||

		kCT == KeyEvent.VK_6 ||

		kCT == KeyEvent.VK_7 ||

		kCT == KeyEvent.VK_8 ||

		kCT == KeyEvent.VK_9 ||

		kCT == KeyEvent.VK_NUMPAD0  ||

		kCT == KeyEvent.VK_NUMPAD1  ||

		kCT == KeyEvent.VK_NUMPAD2  ||

		kCT == KeyEvent.VK_NUMPAD3  ||

		kCT == KeyEvent.VK_NUMPAD4  ||

		kCT == KeyEvent.VK_NUMPAD5  ||

		kCT == KeyEvent.VK_NUMPAD6  ||

		kCT == KeyEvent.VK_NUMPAD7  ||

		kCT == KeyEvent.VK_NUMPAD8  ||

		kCT == KeyEvent.VK_NUMPAD9) {

			// dann schreib die Zahl in das Feld

		}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Oh, sorry!!:rolleyes:

Du kannst dir doch vom JEditorPane den schon geschriebenen Text (Zahlen) holen. (getText(); )

So, und nun nimmst du einfach die Tasteneingabe (kCT = e.getKeyCode();) und addest sie einfach dem Text den du aus dem JEditorPane geholt hast. Und danach setzt du einfach den neuen Text ( setText(String t); )!

Also Klartext:


public void keyPressed(KeyEvent e) {

	String strJEditorPaneText = jepIrgendwas.getText();

	int kCT = e.getKeyCode();

	if(kCT == KeyEvent.VK_0 ||

		kCT == KeyEvent.VK_1 ||

		kCT == KeyEvent.VK_2 ||

		kCT == KeyEvent.VK_3 ||

		kCT == KeyEvent.VK_4 ||

		kCT == KeyEvent.VK_5 ||

		kCT == KeyEvent.VK_6 ||

		kCT == KeyEvent.VK_7 ||

		kCT == KeyEvent.VK_8 ||

		kCT == KeyEvent.VK_9 ||

		kCT == KeyEvent.VK_NUMPAD0  ||

		kCT == KeyEvent.VK_NUMPAD1  ||

		kCT == KeyEvent.VK_NUMPAD2  ||

		kCT == KeyEvent.VK_NUMPAD3  ||

		kCT == KeyEvent.VK_NUMPAD4  ||

		kCT == KeyEvent.VK_NUMPAD5  ||

		kCT == KeyEvent.VK_NUMPAD6  ||

		kCT == KeyEvent.VK_NUMPAD7  ||

		kCT == KeyEvent.VK_NUMPAD8  ||

		kCT == KeyEvent.VK_NUMPAD9) {

			strJEditorPaneText+= getKeyText(kCT);

			// Ich weiß, das macht man nicht mit Strings 

	}

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

also, das ganze schaut momentan bei mir so aus:

public void keyPressed( KeyEvent ke ) {

    if ( ke.getKeyCode() == KeyEvent.VK_0 ||

            ke.getKeyCode() == KeyEvent.VK_1 ||

            ke.getKeyCode() == KeyEvent.VK_2 ||

            ke.getKeyCode() == KeyEvent.VK_3 ||

            ke.getKeyCode() == KeyEvent.VK_4 ||

            ke.getKeyCode() == KeyEvent.VK_5 ||

            ke.getKeyCode() == KeyEvent.VK_6 ||

            ke.getKeyCode() == KeyEvent.VK_7 ||

            ke.getKeyCode() == KeyEvent.VK_8 ||

            ke.getKeyCode() == KeyEvent.VK_9 ||

            ke.getKeyCode() == KeyEvent.VK_NUMPAD0 ||

            ke.getKeyCode() == KeyEvent.VK_NUMPAD1 ||

            ke.getKeyCode() == KeyEvent.VK_NUMPAD2 ||

            ke.getKeyCode() == KeyEvent.VK_NUMPAD3 ||

            ke.getKeyCode() == KeyEvent.VK_NUMPAD4 ||

            ke.getKeyCode() == KeyEvent.VK_NUMPAD5 ||

            ke.getKeyCode() == KeyEvent.VK_NUMPAD6 ||

            ke.getKeyCode() == KeyEvent.VK_NUMPAD7 ||

            ke.getKeyCode() == KeyEvent.VK_NUMPAD8 ||

            ke.getKeyCode() == KeyEvent.VK_NUMPAD9 ||

            ke.getKeyCode() == KeyEvent.VK_BACK_SPACE ||

            ke.getKeyCode() == KeyEvent.VK_DELETE )

    {


    }

  }

das problem ist, dass immernoch alle tasten angezeigt werden, die ich tippe, also auch buchstaben usw. :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

das geht nicht. :beagolisc

public void keyPressed( KeyEvent ke ) {

    int kCT = ke.getKeyCode();

    if ( kCT == KeyEvent.VK_0 ||

            kCT == KeyEvent.VK_1 ||

            kCT == KeyEvent.VK_2 ||

            kCT == KeyEvent.VK_3 ||

            kCT == KeyEvent.VK_4 ||

            kCT == KeyEvent.VK_5 ||

            kCT == KeyEvent.VK_6 ||

            kCT == KeyEvent.VK_7 ||

            kCT == KeyEvent.VK_8 ||

            kCT == KeyEvent.VK_9 ||

            kCT == KeyEvent.VK_NUMPAD0 ||

            kCT == KeyEvent.VK_NUMPAD1 ||

            kCT == KeyEvent.VK_NUMPAD2 ||

            kCT == KeyEvent.VK_NUMPAD3 ||

            kCT == KeyEvent.VK_NUMPAD4 ||

            kCT == KeyEvent.VK_NUMPAD5 ||

            kCT == KeyEvent.VK_NUMPAD6 ||

            kCT == KeyEvent.VK_NUMPAD7 ||

            kCT == KeyEvent.VK_NUMPAD8 ||

            kCT == KeyEvent.VK_NUMPAD9)

    {

      jepDays.setText(KeyEvent.getKeyText(kCT));

    }

  }


  public void keyReleased( KeyEvent ke ) {


  }


  public void keyTyped( KeyEvent ke ) {


  }

wenn ich nun nen buchstaben druecke, wird dieser angezeigt. Bei ner Zahl wird die Zahl zwei mal reingeschrieben ... :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

UUAAAAAHHHH!!:rolleyes:;)


public void keyPressed( KeyEvent ke ) {

    [B]String strText = jepDays.getText();

    jepDays.setText("");[/B]

    int kCT = ke.getKeyCode();

    if ( kCT == KeyEvent.VK_0 ||

            kCT == KeyEvent.VK_1 ||

            kCT == KeyEvent.VK_2 ||

            kCT == KeyEvent.VK_3 ||

            kCT == KeyEvent.VK_4 ||

            kCT == KeyEvent.VK_5 ||

            kCT == KeyEvent.VK_6 ||

            kCT == KeyEvent.VK_7 ||

            kCT == KeyEvent.VK_8 ||

            kCT == KeyEvent.VK_9 ||

            kCT == KeyEvent.VK_NUMPAD0 ||

            kCT == KeyEvent.VK_NUMPAD1 ||

            kCT == KeyEvent.VK_NUMPAD2 ||

            kCT == KeyEvent.VK_NUMPAD3 ||

            kCT == KeyEvent.VK_NUMPAD4 ||

            kCT == KeyEvent.VK_NUMPAD5 ||

            kCT == KeyEvent.VK_NUMPAD6 ||

            kCT == KeyEvent.VK_NUMPAD7 ||

            kCT == KeyEvent.VK_NUMPAD8 ||

            kCT == KeyEvent.VK_NUMPAD9)

    {

      jepDays.setText([B]strText + [/B]KeyEvent.getKeyText(kCT));

    }

    [B]else jepDays.setText(strText);[/B]

  }


Peet

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

eigene JEditorPane schreiben und von JEditorPane ableiten.

Methode setText überschreiben und dort prüfen.

Oder einen DocumentListener auf das Document der JEditorPane setzen und bei den jeweils gefeuerten Events notfalls die Änderungen rückgängig machen.

Man kann Zeichen nicht nur über Tasten einfügen. ;)

Gruß Jaraz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von Jaraz

eigene JEditorPane schreiben und von JEditorPane ableiten.

Methode setText überschreiben und dort prüfen.

Sorry, das wird wenn du nicht selber den Text setzt, sondern über Maus oder Tastatur, natürlich nicht funktionieren.

Original geschrieben von Jaraz

Oder einen DocumentListener auf das Document der JEditorPane setzen und bei den jeweils gefeuerten Events notfalls die Änderungen rückgängig machen.

Das sollte aber klappen.

Gruß Jaraz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...