MouseMove klappt nicht

gelbe_decke

Grünschnabel
hat sich erlesigt :)



hallo :) hab mal eine Frage zu der funktion mouseMove(), möchte das ein Panel auf der ContentPane angezeigt wird wenn ich die Maus bewege aber leider klappt das nicht.
Wär cool wenn mir da jmd helfen könnte...beste grüße
Code:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;

public class ComponentGlassPane extends JFrame implements MouseMotionListener
{

	Container cp = getContentPane();
	JPanel panel = new JPanel();
	JButton button = new JButton("Test");
	
	public ComponentGlassPane ()
	{
		cp.setLayout(new BorderLayout());
		panel.setLayout(new BorderLayout());
		panel.add(button,BorderLayout.CENTER);
		
		panel.setVisible(false);
		cp.addMouseListener(new MouseAdapter() {
			public void mouseMoved(MouseEvent e){
				cp.add(panel,BorderLayout.SOUTH);
				panel.setVisible(true);
				cp.validate();
				
			}});
	}
	
	public static void main (String [] args)
	{
		ComponentGlassPane test = new ComponentGlassPane();
		test.setVisible(true);
		test.setSize(500,500);
	}
}
 
Zuletzt bearbeitet:
Entwickelst du mit einer IDE? spuckt die dir keinen Fehler aus? Du hast zwar deine Klasse vom MouseMotionListener erben lassen, aber die Methoden nicht überschrieben, die benötigt werden. Die Methode mouseMoved des MouseAdapters wird nicht aufgerufen, weil du den MouseAdapter nicht als MouseListener, sondern als MouseMotionListener hinzufügen musst.
(Zeile 20 in deinem Code: )
Java:
cp.addMouseMotionListener(new MouseAdapter() {
statt
Java:
cp.addMouseListener(new MouseAdapter() {
denn mouseMoved() ist eine Methode des MouseMotionListeners, nicht des MouseListeners (Ich weiß, das klingt komisch, aber da haben die Java-Entwickler ungünstige Namen gewählt).

Prinzipiell wäre es auch hilfreich, wenn du
- schreibst, was nicht funktioniert
- schreibst, wie es funktionieren soll
- Fehlermeldungen/Stacktraces/Ausgabe deines Programmes postest
- evtl. ein Bild anhängst
 
Ich find ja mal das "Hat sich erledigt" cool was ganz oben reineditiert wurde.

Dafür gibt es ZWEI Alternativen welche dieser IMMER vorzuziehen sind

1) Den Thread als ERLEDIGT makieren
2) einen NEUEN Post *als Antwort* mit dieser Information

btw : Willkommen im Java-Forum
 
SPiKEe wollte eigentlich, dass du den Button "Erledigt" klickst, damit auch in der Thread-Übersicht und bei den Suchergebnissen sichtbar wird, dass dieser Thread erledigt ist.

PS: Weil ichs gestern vergessen hab: Willkommen im Forum ;)
 
Zurück