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:
Ich hoffe ihr könnt mir helfen...
mfg
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