Java BeautyEye 外观和感觉是空的 JMenuBar 项目

标签 java linux swing java-8 look-and-feel

我正在使用 BeautyEye在 Java 桌面程序中进行外观和感觉,但最近发现 JMenuBar 显示空的 JMenuItems,如下面的屏幕截图所示。

如您所见,菜单区域在那里,但颜色与 Jframe contentPane 相同,并且没有可见的菜单文本。

empty menubar example

测试这个的示例程序(从 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);
  }
}

最佳答案

我是 BeautyEye 项目的作者。

注意几点:

  1. BeautyEye 已迁移到 GitHub: https://github.com/JackJiang2011/beautyeye , 你可以找到 那里有最新版本。但是我很抱歉,没有英语 介绍。
  2. 由于JDK版本更新太快,我只是 用 jdk8 做一些测试(并且只针对 Windows),所以我不能保证 暂时在所有平台上完全兼容 jdk8。
  3. 我认为问题是Java透明API引起的,你可以获取最新的源代码进行调试:例如使用系统框架样式但不使用透明框架边框等。

你可以通过jb2011 at 163.com联系我,希望你能解决这个问题。

关于Java BeautyEye 外观和感觉是空的 JMenuBar 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30570548/

相关文章:

java - 错误:Cannot find symbol.。在我的Java程序中

java - 如何在 apache servicemix 中的组件之间交换消息

linux - 为什么 Apache Cordova 不支持 Linux 桌面?

java - JTextField 上的监听器以检测数据输入是否完成

java - 所有 JPanel 均未显示在我的 JFrame 中

java - "the type of the class modeled by this Class object"是什么意思?

java - Spring Data Rest - 在 Json 中禁用自链接(HAL)

php - 从 PHP 在后台运行 shell 脚本

linux - 如何修改 Linux 内核以更改 uname 返回的版本字符串?

java - 如何获取 jInternalPane 的卡片布局?