У меня есть JFrame с JMenuBar, который я разрабатываю и тестирую в системе Mac. В этом JFrame я запрограммировал одно из JMenus для отключения. Однако, когда я переключаю внимание с моего Java-приложения на какую-то другую программу на своем компьютере, а затем возвращаюсь к этому JFrame, происходят странные вещи. Я заметил, что все меню становятся отключенными. Я также заметил, что все меню стали активными. Кто-нибудь может сказать мне, что здесь происходит?
Вот фрагмент кода, который будет воспроизводить ошибку (по крайней мере, на моей машине):
public class MenuProblemExample {
public static void main(String[] args) {
System.setProperty("apple.laf.useScreenMenuBar", "true");
JFrame frame = new JFrame();
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("File");
fileMenu.add(new JMenuItem("open"));
menuBar.add(fileMenu);
JMenu editMenu = new JMenu("Edit");
editMenu.add(new JMenuItem("select all"));
menuBar.add(fileMenu);
menuBar.add(editMenu);
frame.setJMenuBar(menuBar);
fileMenu.setEnabled(false);
frame.setVisible(true);
}
}
Когда я запускаю это, включенное свойство не стабильно при переключении фокуса на другое окно, а затем обратно.
System.setProperty("apple.laf.useScreenMenuBar", "true");
Зачем вы вообще устанавливаете это свойство? - person Branislav Lazic   schedule 07.12.2012UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
означает? :) - person Branislav Lazic   schedule 07.12.2012main
. Также окружите его блокомtry/cath
и расскажите, как выглядит ваше меню. P.S. Удалите эту строкуSystem.setProperty("apple.laf.useScreenMenuBar", "true");
. - person Branislav Lazic   schedule 07.12.2012