Я столкнулся с очень странной проблемой, связанной с использованием JMenuBar, при которой перемещение между двумя JMenus приводит к некорректному перерисовыванию области содержимого JFrame, которой принадлежит меню.Панель содержимого представляет правильный фон только там, где пункты меню выпадают и «пачкают» экран - остальное полностью белое.Однако это происходит только после просмотра между двумя меню, а не сразу.Требуется несколько секунд переключения между пустой областью содержимого, чтобы изменить цвет обычного фона.
РЕДАКТИРОВАТЬ Для пояснения, это в Windows 7 с использованием JDK 1.7.0.
Чтобы лучше проиллюстрировать, что я имею в виду, вот окно после запуска (изменено вручную): 
И затем после использования JMenus в течение нескольких секунд: 
Ниже SSCCE , демонстрирующий проблемный код.
package com.test.workspace;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.SwingUtilities;
public class MenuBarTest extends JFrame {
/**
* Eclipse-generated SUID.
*/
private static final long serialVersionUID = 8836700685077107497L;
public MenuBarTest() {
JMenuBar menuBar = new JMenuBar();
JMenu testMenu = new JMenu("Test");
JMenuItem testItem = new JMenuItem("TestItem");
JMenu breakMenu = new JMenu("Break");
JMenuItem breakItem = new JMenuItem("BreakItem");
testMenu.add(testItem);
breakMenu.add(breakItem);
menuBar.add(testMenu);
menuBar.add(breakMenu);
this.setJMenuBar(menuBar);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
MenuBarTest test = new MenuBarTest();
test.setDefaultCloseOperation(EXIT_ON_CLOSE);
test.pack();
test.setVisible(true);
}
});
}
}