Я использую BeautyEye внешний вид в программе Java Desktop, но недавно обнаружил, что JMenuBar показывает empy JMenuItems, как показано на скриншоте ниже.Java BeautyEye выглядит пустым JMenuBar items
Как вы видите, область меню есть, но с тем же цветом, что и панель содержимого Jframe, и без видимого текста меню.
программа образец для тестирования этого (скачать библиотеку BeautyEye из here) является:
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);
}
}
Ваш код работает здесь, как ожидалось. Win7, Java 7 и PLAF от 'beautyeye_lnf_v3.5_all_in_one.zip'. – SubOptimal
Linux, Java 8 и PLAF от beautyeye_lnf_v3.5_all_in_one.zip не работают :( –
Эта проблема также появляется в демонстрационном приложении [SwingSets3 (BeautyEyeLNFDemo) .jar] (https://raw.githubusercontent.com/JackJiang2011/beautyeye /master/demo2/SwingSets3(BeautyEyeLNFDemo).jar) – SubOptimal