我在Java Desktop程序中使用BeautyEye外观,但是最近发现JMenuBar显示了empy JMenuItems,如下面的屏幕快照所示。
如您所见,菜单区域在那里,但是与Jframe contentPane颜色相同,并且没有菜单文本可见。
一个测试该示例的示例程序(从here下载BeautyEye库)是:
import java.awt.*;
import javax.swing.*;
import org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper;
public class JavaMenuBarExample implements Runnable
{
private JFrame frame;
private JMenuBar menuBar;
private JMenu fileMenu;
private JMenuItem openMenuItem;
public static void main(String[] args)
{
try
{
BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.osLookAndFeelDecorated;
org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper.launchBeautyEyeLNF();
UIManager.put("RootPane.setupButtonVisible", Boolean.FALSE);
}
catch (Exception ex)
{
ex.printStackTrace();
}
// the proper way to show a jframe (invokeLater)
SwingUtilities.invokeLater(new JavaMenuBarExample());
}
@Override
public void run()
{
frame = new JFrame("Java Menubar Example");
menuBar = new JMenuBar();
fileMenu = new JMenu("File");
openMenuItem = new JMenuItem("Open");
fileMenu.add(openMenuItem);
// add menus to menubar
menuBar.add(fileMenu);
// put the menubar on the frame
frame.setJMenuBar(menuBar);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setPreferredSize(new Dimension(400, 300));
frame.pack();
frame.setVisible(true);
}
}
最佳答案
我已经调试过使用jdk 1.8_u45,在Windows平台上是正常的。
我猜这可能是Linux平台java1.8_u45的错误。