JMenuBar не включается после отключенияJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 JMenuBar не включается после отключения

Сообщение Anonymous »

Я отключаю JMenuBar перед отображением FileDialog (поскольку пункты меню все еще активны, когда FileDialog виден), используя getJMenuBar().setEnabled(false) и затем вызов getJMenuBar().setEnabled(true) после закрытия FileDialog, но пункты меню не становятся активными после включения — они будет, если я перейду на другое приложение и вернусь к своему. Я пробовал вызывать getJMenuBar().revalidate() и/или getJMenuBar().repaint(), но безрезультатно.

Из обратите внимание: я использую экранное меню, поскольку работаю в OS X. Пример кода, демонстрирующий проблему:

Код: Выделить всё

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class MenuTest extends JFrame implements ActionListener {

private JMenuItem menuItemNew = new JMenuItem("New");
private JMenuItem menuItemOpen = new JMenuItem("Open");
private JMenuItem menuItemSave = new JMenuItem("Save");
private JMenu menuFile = new JMenu("File");
private JMenuBar menuBar = new JMenuBar();

public MenuTest() {
super("JMenu Test");
setSize(300, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

menuItemOpen.addActionListener(this);

menuFile.add(menuItemNew);
menuFile.add(menuItemOpen);
menuFile.add(menuItemSave);
menuBar.add(menuFile);
setJMenuBar(menuBar);

setVisible(true);
}

public void openFile() {
getJMenuBar().setEnabled(false);
FileDialog fd = new FileDialog(this, "Choose a file", FileDialog.LOAD);
fd.setVisible(true);
getJMenuBar().setEnabled(true);
}

@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == menuItemOpen) {
openFile();
}
}

public static void main(String[] arguements) {
System.setProperty("apple.laf.useScreenMenuBar", "true");
new MenuTest();
}

}
Заранее благодарим за комментарии/предложения!

Подробнее здесь: https://stackoverflow.com/questions/320 ... g-disabled
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»