Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

TA_anzeigeInputMethodTextChanged

Empfohlene Antworten

Veröffentlicht

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]

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

(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

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);

	}


}


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ß

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.