2015-06-01 4 views
2

Я использую BeautyEye внешний вид в программе Java Desktop, но недавно обнаружил, что JMenuBar показывает empy JMenuItems, как показано на скриншоте ниже.Java BeautyEye выглядит пустым JMenuBar items

Как вы видите, область меню есть, но с тем же цветом, что и панель содержимого Jframe, и без видимого текста меню.

empty menubar example

программа образец для тестирования этого (скачать библиотеку 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); 
    } 
} 
+2

Ваш код работает здесь, как ожидалось. Win7, Java 7 и PLAF от 'beautyeye_lnf_v3.5_all_in_one.zip'. – SubOptimal

+0

Linux, Java 8 и PLAF от beautyeye_lnf_v3.5_all_in_one.zip не работают :( –

+2

Эта проблема также появляется в демонстрационном приложении [SwingSets3 (BeautyEyeLNFDemo) .jar] (https://raw.githubusercontent.com/JackJiang2011/beautyeye /master/demo2/SwingSets3(BeautyEyeLNFDemo).jar) – SubOptimal

ответ

0

Я отлаживал его, используя jdk 1.8_u45, это нормально на платформе Windows. Я предполагаю, что это может быть ошибка для linux-платформы java1.8_u45.

enter image description here

1

Я являюсь автором проекта BeautyEye.

Несколько вещей, чтобы отметить:

  1. BeautyEye мигрировала GitHub: https://github.com/JackJiang2011/beautyeye, вы можете найти последнюю версию там. Но мне очень жаль, нет английского введение.
  2. Поскольку версия JDK обновляется слишком быстро, я просто делает несколько тестов с jdk8 (и только для Windows), поэтому я не могу гарантировать полную совместимость с jdk8 на всей платформе.
  3. Я думаю, что проблема вызвана Java прозрачного API, вы можете получить последнюю версию исходного кода для его отладки: например, использование стиля кадров системы, но не использовать прозрачную границу кадра и т.д.

Вы можете связаться со мной по jb2011 at 163.com, надеюсь, вы сможете решить эту проблему.

+0

Я извлек последний исходный код и скомпилировал свой пример в GNU/Linux и Java 1.8 и, похоже, исправлен! –

+0

У меня возникли проблемы с построением дискового блока проекта, он дает ошибки компиляции, такие как «error: package sun.swing.table не существует», в соответствии с Oracle FAQ http://www.oracle.com/technetwork/java/ чаво-солнце-пакеты-142232.html «Java-программа, которая напрямую вызывает на солнце. * пакеты не гарантируют работу на всех совместимых с Java платформах». –

 Смежные вопросы

  • Нет связанных вопросов^_^