JMenu выглядит странно при использовании jgoodies-выглядит WindowsLookAndFeel - PullRequest
0 голосов
/ 11 января 2019

Итак, я пытался придать своему Java-приложению Swing собственный вид Windows, используя JGoodies-Looks 2.7.0 Windows L & F, но наткнулся на проблему при попытке создать JMenuBar, так как это выглядит странно. Что я делаю неправильно?

Вот как JMenu выглядит в демоверсии jgoodies-look:

This is how JMenu looks like in jgodiees-looks demo

И вот как это выглядит в моем демонстрационном приложении:

And this is how it looks in my demo app

Обратите внимание: первый JMenuItem получен

Демонстрационный код:

import com.jgoodies.looks.windows.WindowsLookAndFeel;
import javax.swing.*;

public class TestForm extends JFrame {

    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel(new WindowsLookAndFeel());
        } catch (Exception e) {
            System.out.println("Can't change L&F: " + e);
        }
        SwingUtilities.invokeLater(TestForm::new);
    }

    public TestForm(){
        this.setBounds(200, 200, 500, 500);
        this.setTitle("Test");
        this.setJMenuBar(constructMenuBar());
        this.setVisible(true);
    }

    private JMenuBar constructMenuBar(){
        JMenuBar menuBar = new JMenuBar();
        menuBar.add(constructEditMenu());
        return menuBar;
    }

    private JMenu constructEditMenu() {
        JMenu menu = new JMenu("Edit");
        menu.add(createItem("Copy"));
        menu.add(new JSeparator());
        menu.add(createItem("Paste"));
        return menu;
    }

    private JMenuItem createItem(String title){
        return new JMenuItem(title);
    }
}
...