swing frame als popup menu

MrRock

Mitglied
Hallo,

ich habe ein Anwendungs-Frame mit mehreren JLabels(incl Icon). Wenn man über dieses Icon fährt soll sich unterhalb des JLabels( aber außerhalb des eigentlichen Frames) ein weiteres Fenster öffnen mit anklickbaren JLabels, so als wär dies ein Popup Menü.

Mich interessiert wie man das MouseEntered und MouseExited realisiert?

Gruß Marcus
 
Das sollte so ungefähr sein, was du meinst (Hoffe ich).

PHP:
JLabel jl = new JLabel("Irgendein Text");
		jl.setIcon(new ImageIcon("Pfad zum Bild"));
		jl.setBounds(10,200,150,20);	
		jl.addMouseListener(new MouseListener(){

			public void mouseClicked(MouseEvent arg0) {}

			public void mouseEntered(MouseEvent arg0) {
				JOptionPane.showMessageDialog(null, "Dein Text");
			}

			public void mouseExited(MouseEvent arg0) {}

			public void mousePressed(MouseEvent arg0) {}

			public void mouseReleased(MouseEvent arg0) {}
			
		});
		this.add(BorderLayout.CENTER,jl);		
		jl.setVisible(true);

So wie ich das verstanden habe, brauchst du gar kein mouseExited, du möchtest ja lediglich das etwas passiert, wenn die Maus über das JLabel geht.
 
OK, dann hab ich mich noch nicht verständlich ausgedrückt.

So wie du es beschrieben hast ist es mir schon klar. Aber da gibt es ein Problem.
OK es soll so funktionieren:

Ein 32x32 großer Jframe, darin ein ebensogroßes JLabel mit Icon. Wenn man mit der Mouse über das Icon fährt öffnet sich ein neuer JFrame unterhalb des Icons (so wie bei Tooltips oder Popupmenüs).
Wenn man sich nun aus dem Bereich des Icons bewegt und innerhalb des neuen Frames kommt, soll nichts passieren bis man wieder außerhalb des neuen Fensters ist, dann soll dieses verschwinden.
Wenn man sich aus dem Bereich des Icons bewegt und nicht innerhalb des neuen Frames ist soll das neue Fenster wieder verschwinden.

Das Problem ist das Verschwinden des neuen Frames, da man unterscheiden muss aus welchem Objekt man sich herausbewegt.

Ich denke man kann es mit einem neuen Thread lösen, aber das ist mir zu umständlich für so eine doch banale Aufgabe.
 
Zurück