AWT Component added keinen MouseListener

Status
Nicht offen für weitere Antworten.

Developer_X

Top Contributor
Zunächst danke, dass ihr euch Zeit für mein Problem nehmt.
Ich habe folgendes Problem:
Ich lasse eine Klasse von java.awt.Component adden.
Nun lasse ich im Constructor der Klasse einen MouseListener adden:
Java:
public ErberKlasse()
{
		addMouseListener(new MouseListener()
		{
			public void mouseClicked(MouseEvent arg0) 
			{
				System.out.println("hello");
			}
			public void mouseEntered(MouseEvent arg0) 
			{
			}
			public void mouseExited(MouseEvent arg0) 
			{
			}
			public void mousePressed(MouseEvent arg0)
			{
			}
			public void mouseReleased(MouseEvent arg0) 
			{
			}
		}
		);
}
Leider wird der Text ("hello") nicht ausgegeben.
Kann mir einer sagen weshalb?
 

HildiHulda

Mitglied
Guten Morgen,

ich bin mir auch nicht ganz sicher, was genau Du mit adden meinst, aber dennoch poste ich mal etwas, das Dein *Hello* anzeigt:

Java:
import java.awt.Frame;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;


@SuppressWarnings("serial")
public class ErberKlasse extends java.awt.Component{

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Frame f = new Frame();
		f.add(new ErberKlasse());
		f.pack();
		f.setVisible(true);
		
	}
	public ErberKlasse()
	{
	        this.addMouseListener(new MouseListener()
	        {
	            public void mouseClicked(MouseEvent arg0) 
	            {
	                System.out.println("hello");
	            }
	            public void mouseEntered(MouseEvent arg0) 
	            {
	            }
	            public void mouseExited(MouseEvent arg0) 
	            {
	            }
	            public void mousePressed(MouseEvent arg0)
	            {
	            }
	            public void mouseReleased(MouseEvent arg0) 
	            {
	            }
	        }
	        );
	}

}

Wenn Du in dem angezeigten Frame f klickt, gibt die Konsole das Hello aus. Ich denke, in Deinem Code-Schnippel fehlte nur die Bühne für Deine Komponente. Ich hoffe, das hilft.

Gruß
 

Java@home

Aktives Mitglied
Hi,
was meist du damit?
Java:
public void mouseClicked(MouseEvent arg0) 
            {
                System.out.println("hello");
            }
Wenn du willst, dass er auf irgend einer Weise reagiert, dann musst du dem auch konkrett sagen wo der Klick passiert(hoffe das war verständlich ausgedrückt;))!
Java:
public void mouseClicked(MouseEvent arg0)  {
              if (arg0.getComponent.equals(deine Componente)) {
                System.out.println("hello");
                }
            }
So klappt das auch!
Mann kann auch
Java:
public void mouseClicked(MouseEvent arg0)  {
              if (arg0.getSource == deine Componente) {
                System.out.println("hello");
                }
            }
Jedoch würde ich das erste vorziehen!
Natürlich muss das ganze auch angemeldet werden
Java:
deinFrameOderSo.addMouseListener(deinMouseListener)
MFG
 
Zuletzt bearbeitet:
B

Beni

Gast
Wenn du willst, dass er auf irgend einer Weise reagiert, dann musst du dem auch konkrett sagen wo der Klick passiert(hoffe das war verständlich ausgedrückt;))!
Ein MouseListener der zu einer Component hinzugefügt wurde, wird auch nur feuern wenn diese Component ein MouseEvent erreicht. Da muss man nichts vergleichen. ;-)
 

hdi

Top Contributor
Nur halt wenn man will, dass er nur dort reagiert
Ich glaube du hast das noch immer nicht richtig verstanden?! Zumindest hört sich das so an. Nochmal zur Sicherheit, ansonsten ignorier es ;)

Java:
someComponent.addMouseListener(new MouseListener(){
  ...
});

Jegliche Methoden dieses MouseListeners werden nur genau dann aufgerufen, wenn sich die Events auf "someComponent" beziehen. Denn das ist eine anonyme Klasse die garantiert nicht an einer weiteren Komponente hängen kann.

Das Überprüfen der Source musst du nur machen, wenn ein und der selbe Listener an mehreren Komponenten hängt. Aber wenn dieser Listener nur zu einer Komponente hinzugefügt wurde (was eben bei anonymen Klassen garantiert ist), dann muss es ja diese Komponente sein, die geklickt wurde. Andernfalls würde dieser Listener ja nicht reagieren, weil er keine Benachrichtung auf einen Klick bekommt.
 
Zuletzt bearbeitet:

Java@home

Aktives Mitglied
Ich glaube du hast das noch immer nicht richtig verstanden?! Zumindest hört sich das so an. Nochmal zur Sicherheit, ansonsten ignorier es ;)

Java:
someComponent.addMouseListener(new MouseListener(){
  ...
});

Jegliche Methoden dieses MouseListeners werden nur genau dann aufgerufen, wenn sich die Events auf "someComponent" beziehen. Denn das ist eine anonyme Klasse die garantiert nicht an einer weiteren Komponente hängen kann.

Das Überprüfen der Source musst du nur machen, wenn ein und der selbe Listener an mehreren Komponenten hängt. Aber wenn dieser Listener nur zu einer Komponente hinzugefügt wurde (was eben bei anonymen Klassen garantiert ist), dann muss es ja diese Komponente sein, die geklickt wurde. Andernfalls würde dieser Listener ja nicht reagieren, weil er keine Benachrichtung auf einen Klick bekommt.
Danke für die Mühe, das Thema ist geritzt!:toll:
MFG
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K JavaFX Resizing-Problem beim BorderLayout (Center Component) beim Arbeiten mit mehreren FXMLs AWT, Swing, JavaFX & SWT 2
C Swing Component bei Doppelklick löschen AWT, Swing, JavaFX & SWT 4
R Swing Hat mein JFrame meinen Component? AWT, Swing, JavaFX & SWT 2
R Layout Manager null und Component wird nicht hinzugefügt AWT, Swing, JavaFX & SWT 3
B Größe der Parent-Component dynamisch an children anpassen AWT, Swing, JavaFX & SWT 30
K JavaFX Component Größe an Inhalt anpassen AWT, Swing, JavaFX & SWT 11
M Swing Component Resize AWT, Swing, JavaFX & SWT 7
L Eigene Component anordnen AWT, Swing, JavaFX & SWT 7
L Eigene Component Layout AWT, Swing, JavaFX & SWT 4
W Swing Component mehrfach adden AWT, Swing, JavaFX & SWT 0
H Drag component out of window AWT, Swing, JavaFX & SWT 1
A remove(Component) funktioniert nicht; JTable AWT, Swing, JavaFX & SWT 4
A Swing Focus auf gemalte Component AWT, Swing, JavaFX & SWT 5
L Swing Component alignment innerhalb einer JList AWT, Swing, JavaFX & SWT 3
M AWT Drag n Drop-Support für Component AWT, Swing, JavaFX & SWT 5
M Kein resize nach Component.setVisible() AWT, Swing, JavaFX & SWT 2
Ebenius AWT Bug in Component.getLocationOnScreen() AWT, Swing, JavaFX & SWT 7
C AWT Fokus von Component entfernen, wenn kein anderes vorhanden AWT, Swing, JavaFX & SWT 4
B JTable Component mit String? AWT, Swing, JavaFX & SWT 4
M Eigenes Panel aus Component? AWT, Swing, JavaFX & SWT 5
H Component Zerren AWT, Swing, JavaFX & SWT 5
S Swing Component vertikal und hochizontal zentrieren? AWT, Swing, JavaFX & SWT 5
Z Component für File-Browser ähnliche Oberfläche AWT, Swing, JavaFX & SWT 6
B Swing verschachteltes GUI: repaint() ändert mehr als nur gewünschte Component AWT, Swing, JavaFX & SWT 4
V Swing remove(Component) blockiert Thread sehr lange. AWT, Swing, JavaFX & SWT 6
C Problem mit remove(Component comp) AWT, Swing, JavaFX & SWT 23
F AWT Component in OpenGL anzeigen? AWT, Swing, JavaFX & SWT 18
A Java Konsolen Component AWT, Swing, JavaFX & SWT 6
G Swing Component.toString() was bedeutet flags AWT, Swing, JavaFX & SWT 8
1 Eigene Component in JScrollBar + fixe Linien??? AWT, Swing, JavaFX & SWT 2
DamienX Swing Component auf mehreren Containern AWT, Swing, JavaFX & SWT 2
algorismi AWT Tranparente heavyweight component AWT, Swing, JavaFX & SWT 2
R Swing Methode add([Component]) funzt nich AWT, Swing, JavaFX & SWT 7
U LayoutManager [GBL] Component aus einer Zelle löschen AWT, Swing, JavaFX & SWT 2
H Swing Illegal component position! AWT, Swing, JavaFX & SWT 2
C Flamingo Component AWT, Swing, JavaFX & SWT 2
M Doppelklick auf Component abfangen AWT, Swing, JavaFX & SWT 5
P DragAndDrop zw Component und Container AWT, Swing, JavaFX & SWT 4
M AWT Component/Canvas erzeugt unerwünschten Rahmen bei paint AWT, Swing, JavaFX & SWT 3
T Swing Component in Graphics zeichnen AWT, Swing, JavaFX & SWT 4
R Zugriff auf Component um addComponentListener() aufzurufen AWT, Swing, JavaFX & SWT 4
K AWT/SWING intern - Wie funktioniert die Component-Ermittlung AWT, Swing, JavaFX & SWT 13
S Line Component in SWING AWT, Swing, JavaFX & SWT 2
S java.awt.Component und paint() AWT, Swing, JavaFX & SWT 4
hdi Verständnisfrage: Container vs. Component AWT, Swing, JavaFX & SWT 3
D Eigene Component erstellen? AWT, Swing, JavaFX & SWT 4
C Syntax Highlighting Component AWT, Swing, JavaFX & SWT 2
O KeyBoardFocusManager - previous und next Component checken? AWT, Swing, JavaFX & SWT 2
A Eigene, sich selbst zeichnende Component AWT, Swing, JavaFX & SWT 5
A erneutes Öffnen jInternalFrame: illegal component position AWT, Swing, JavaFX & SWT 4
0 Component austauschen und aktualisieren ? AWT, Swing, JavaFX & SWT 6
S Thread beenden, wenn Component nicht mehr benötigt wird AWT, Swing, JavaFX & SWT 12
G "Rating Component" - Bewerten über JTable AWT, Swing, JavaFX & SWT 3
G Drag And Drop von Component (List, Tree) zum Desktop AWT, Swing, JavaFX & SWT 2
F LayoutManager und Component.setVisible(boolean) AWT, Swing, JavaFX & SWT 2
P Component ändern (repaint) AWT, Swing, JavaFX & SWT 9
F Probleme bei add(Component) JPanel > JFrame AWT, Swing, JavaFX & SWT 3
B Component AWT, Swing, JavaFX & SWT 5
L Swing Component in Buffered Image AWT, Swing, JavaFX & SWT 6
G Component "finden" AWT, Swing, JavaFX & SWT 6
H Component fokussierbar machen AWT, Swing, JavaFX & SWT 2
P Wie das Component Object des Hauptfensters ermitteln? AWT, Swing, JavaFX & SWT 4
M GridBagLayout - Component Position AWT, Swing, JavaFX & SWT 4
R Component einer Form herausbekommen AWT, Swing, JavaFX & SWT 3
T JMenu/JMenuItem Component auf der geaddet wurde AWT, Swing, JavaFX & SWT 16
B Component in JSplitPane aktualisieren AWT, Swing, JavaFX & SWT 2
G add(Component) in paintComponent erlaubt ? AWT, Swing, JavaFX & SWT 2
K Component einfügen in JPane AWT, Swing, JavaFX & SWT 5
M getSize von Component und ModelListener AWT, Swing, JavaFX & SWT 2
S Component auf Label zeichnen? AWT, Swing, JavaFX & SWT 3
R convertPointToScreen(Point p, Component c) AWT, Swing, JavaFX & SWT 5
R Component aus Container entfernen bzw. austauschen. AWT, Swing, JavaFX & SWT 6
C JPanel Component austauschen AWT, Swing, JavaFX & SWT 4
W JavaFX Ich kann keinen Kreis richtig zeichnen AWT, Swing, JavaFX & SWT 8
JojoSand Java Programm wird nicht gestartet - keinen Fehlerhinweis AWT, Swing, JavaFX & SWT 9
L JDialog hat manchmal keinen Inhalt AWT, Swing, JavaFX & SWT 2
S Swing JPanel nimmt keinen KeyListener an AWT, Swing, JavaFX & SWT 7
L JPanel zeigt keinen Inhalt AWT, Swing, JavaFX & SWT 1
Tausendsassa Frame öffnet aber zeigt keinen Inhalt... AWT, Swing, JavaFX & SWT 10
T bekomme keinen Focus auf JTextField AWT, Swing, JavaFX & SWT 3
F JPanel "zeichnet" keinen Text AWT, Swing, JavaFX & SWT 14
F JTextArea hat keinen Rahmen AWT, Swing, JavaFX & SWT 10
P Swing Dialog zeigt keinen Inhalt in Verbindung mit JFrame AWT, Swing, JavaFX & SWT 18
Nicklas2751 Table View zeigt keinen Inhalt nur leere Zeilen AWT, Swing, JavaFX & SWT 2
C JPanel mit FlowLayout in JScrollPane - keinen Scrollbalken AWT, Swing, JavaFX & SWT 2
L Swing JDialog zeigt keinen Inhalt an AWT, Swing, JavaFX & SWT 5
D JScrollPane zeigt keinen Inhalt AWT, Swing, JavaFX & SWT 2
W JTextArea/TextArea kriegt keinen Fokus AWT, Swing, JavaFX & SWT 6
0x7F800000 createImage() hat keinen bock irgendwas zu kreieren.[fertig] AWT, Swing, JavaFX & SWT 3
J JTextPane bekommt keinen Focus! AWT, Swing, JavaFX & SWT 3
B Komponente in JTable bekommt keinen Focus AWT, Swing, JavaFX & SWT 3
M JTextPane schreibt keinen farbigen Text! AWT, Swing, JavaFX & SWT 7
Luma Keinen Cursor in JDialog? AWT, Swing, JavaFX & SWT 9
O JFileChooser: kann keinen ActionListener hinzufügen AWT, Swing, JavaFX & SWT 12
M JScrollPane zeigt einfach keinen ScrollBar AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben