Wiem, że to stara nitka, ale myślę, że mogę mieć rozwiązanie. Natknąłem się na ten problem w jednej z moich aplikacji i znalazłem obejście. Spróbuj użyć JMenuItem zamiast JMenu. Będzie miał ten sam L & F jako JMenu, gdy podłączysz go do paska JMenuBar. Jedyną rzeczą, którą musisz zrobić, to ustawić rozmiar nowego „przycisk”, jako menedżera układu (nawet jeśli nie zostało ustawione) będzie zmieniać rozmiar tego elementu na podstawie własnych zasad:
http://www.javaworld.com/javaworld/jw-09-2000/jw-0922-javatraps.html
Sposób, w jaki to robisz, znajduje się pod tym linkiem (jeśli czujesz się nieswojo klikając na link, google dla "settize doesnt work" - będzie to w pierwszej dziesiątce wyników). Jeśli nie ustawisz właściwie rozmiaru, twój nowy "przycisk" wypełni pozostałą przestrzeń twojego JMenuBar.
wypróbować ten kod:
menuItem.setMinimumSize(someMenu.getSize());
menuItem.setPreferredSize(someMenu.getSize());
menuItem.setMaximumSize(someMenu.getSize());
menuItem.setActionCommand("ActionText");
setActionCommand() metoda będzie ustawić polecenie Akcja, tak że po kliknięciu nowego przycisku „” To będzie komenda działania przeszły przez argument zdarzenia działanie do działania wykonaną metodę, aby łatwo ją zidentyfikować:
public void actionPerformed(ActionEvent e) {
System.out.println(e.getActionCommand());
}
Mam nadzieję, że to pomoże!
nie jestem pewien, rozumiem co próbujesz osiągnąć tutaj. Dlaczego chcesz JMenu działać jak przycisk zamiast po prostu za pomocą JMenuItem? –
Może dostarczyć więcej kodu źródłowego, z którym pracujesz, abyśmy mogli zobaczyć ogólniej, co próbujesz osiągnąć –