Zum Inhalt springen

TA_anzeigeInputMethodTextChanged


Empfohlene Beiträge

Geschrieben

huhu,

ich habe ein textarea und das will ich, auf änderung des textes hin, überprüfen.

habe dem tx die methode TA_anzeigeInputMethodTextChanged hinzugefügt der das ausgelöste event behandeln soll.

es funktioniert jedoch nicht :)


[B]private void TA_anzeigeInputMethodTextChanged(java.awt.event.InputMethodEvent evt) {


        JFrame mainFrame = EditorApp.getApplication().getMainFrame();

        JOptionPane.showMessageDialog(mainFrame, "Text wurde geändert");

    }[/B]

Geschrieben

Servus,

wer soll denn Deine Methode aufrufen? Machst Du das selbst? Was funktioniert dann nicht. Ansonsten: wer sollte sie Deiner Meinung nach aufrufen? Soweit ich die API Dokumentation für die java.awt.TextArea gelesen habe, gibt es dort die Methode mit Deinem Namen nicht.

Wenn Du allerdings auf InputMethodEvents hören willst, dann füge Deiner TextArea einen entsprechenden Listener hinzu (textArea.addInputMethodListener(listener)). Den Listener kannst Du dann entweder als eigene Klasse in einer .java-Datei notieren, oder als anonyme innere Klasse:


textArea.addInputMethodListener(new InputMethodListener() {

    public void inputMethodTextChanged(InputMethodEvent event) {

        // mach was

    }


    public void caretPositionChanged(InputMethodEvent event) {

        // mach was

    }

});

Und beim nächsten Mal könntest Du Deine Frage besser stellen. "Geht nicht" ist keine Fehlerbeschreibung

Peter

Geschrieben

(NetBeans)

der listener wird automatisch hinzugefügt.

bei den eigenschaften auf events klicken und dann die methode hinzufügen.

mit einem anderen event z.B. keyPressed funktioniert es wunderbar.

wann wird denn das ereignis inputMethodTextChanged ausgelöst?

ich suche ein event, das ausgelöst wird, wenn man den text in der textarea geändert hat.

folgender listener wurde hinzugefügt:


       TA_anzeige.addInputMethodListener(new java.awt.event.InputMethodListener() {

            public void caretPositionChanged(java.awt.event.InputMethodEvent evt) {

            }

            public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) {

                TA_anzeigeInputMethodTextChanged(evt);

            }

        });

Referenz: java.awt.event.InputMethodListener

gruß alex

Geschrieben

so?


package test;


import java.awt.BorderLayout;


import javax.swing.JFrame;

import javax.swing.JTextArea;

import javax.swing.event.DocumentEvent;

import javax.swing.event.DocumentListener;

import javax.swing.text.BadLocationException;


public class TestTextChange {


	/**

	 * @param args

	 */

	public static void main(String[] args) {

		JFrame frame = new JFrame("Test");

		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


		JTextArea area = new JTextArea();

		area.setColumns(30);

		area.setRows(10);


		area.getDocument().addDocumentListener(new DocumentListener(){


			@Override

			public void changedUpdate(DocumentEvent e) {

				try {

					System.out.println("text changed: " + e.getDocument().getText(0, e.getDocument().getLength()));

				} catch (BadLocationException e1) {

					// TODO Auto-generated catch block

					e1.printStackTrace();

				}

			}


			@Override

			public void insertUpdate(DocumentEvent e) {

				try {

					System.out.println("text inserted: " + e.getDocument().getText(0, e.getDocument().getLength()));

				} catch (BadLocationException e1) {

					// TODO Auto-generated catch block

					e1.printStackTrace();

				}


			}


			@Override

			public void removeUpdate(DocumentEvent e) {

				try {

					System.out.println("text removed: " + e.getDocument().getText(0, e.getDocument().getLength()));

				} catch (BadLocationException e1) {

					// TODO Auto-generated catch block

					e1.printStackTrace();

				}

			}


		});


		frame.add(area, BorderLayout.CENTER);

		frame.pack();


		frame.setVisible(true);

	}


}


Geschrieben

Hallo,

das funktioniert so.

das müsste doch auch auf meine weise gehen.

weißt du, wann das ereignis genau ausgelöst wird?

in der beschreibung steht lediglich, wenn sich der text geändert hat.

gruß

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...