Problem bei JPopUp

john_spartan

Grünschnabel
Hallöchen,
wenn ich ein PopUp-Menü erstelle und dieses dann aufrufe, wird immer das erste JMenuItem automatisch fokussiert. Das will ich aber nicht! Das komische daran ist, dass wenn ich überprüfe, ob es fokussiert oder selektiert ist (mit isSelected bzw. isFocused), gibts immer false zurück, was an sich auch richtig ist. Bis auf diesen Schönheitsfehler das Menü aber einwandfrei. Ich hab hier mal n Stück Code zur besseren Vorstellung:

Code:
import java.awt.*;
  import java.awt.event.MouseEvent;
  import java.awt.event.MouseListener;
  
  import javax.swing.*;
  
  public class Test extends JFrame implements MouseListener {
  	
  	private JPanel pane = new JPanel();
  
  	public static void main(String[] args) {
  		try {
 			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
  		} catch (ClassNotFoundException e) {
  			e.printStackTrace();
  		} catch (InstantiationException e) {
  			e.printStackTrace();
  		} catch (IllegalAccessException e) {
  			e.printStackTrace();
  		} catch (UnsupportedLookAndFeelException e) {
  			e.printStackTrace();
  		}
  		
  		Test t = new Test();
  		t.show();
  	}
  	
  	public Test() {
  		setSize(400,400);
  		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
  		setContentPane(pane);
  		pane.setLayout(new BorderLayout());
  		addMouseListener(this);
  	}
  	
  	public void checkPopupMenu(MouseEvent event) {
  		JMenuItem item;
  		JPopupMenu popup = new JPopupMenu();
  		item = new JMenuItem("Test 1");
  		popup.add(item);
  		item = new JMenuItem("Test 2");
  		popup.add(item);
  		item = new JMenuItem("Test 3");
  		popup.add(item);
  		popup.pack();
  
  		popup.show(this, event.getX(), event.getY());
  	}
  	
  	public void mouseClicked(MouseEvent arg0) {}
  	public void mouseEntered(MouseEvent arg0) {}
  	public void mouseExited(MouseEvent arg0) {}
  	public void mousePressed(MouseEvent arg0) {}
  	public void mouseReleased(MouseEvent arg0) { checkPopupMenu(arg0); }
  }

Ich hoffe ihr könnt mir helfen...

mfg
 
Moin ;)
hast Du mal probiert, ob es ausreicht, vor dem popup.show(...) das hier zu benutzen:

void setSelected(Component sel)

Also wenn nichts selektiert sein soll, dann

popup.setSelected(null);

So als Idee, ausprobiert habe ich es nicht. Und wie es aussieht, ist wohl nur mit dieser Methode möglich, ein Element vorzuselektieren. Musst halt ausprobieren, ob es mit null geht und wenn nicht, womit man sich dann behelfen kann.
 
Das hab ich auch schon probiert, funktioniert auch nicht.

Ich find nur komisch, dass niemand sonst dieses Problem hat oder zumindest niemandem auffällt....
 

Neue Beiträge

Zurück