Java JPOppMenu中的BeautyEye LaF JTextField已禁用

Java JPOppMenu中的BeautyEye LaF JTextField已禁用,java,swing,look-and-feel,Java,Swing,Look And Feel,我正在使用用于Java Swing应用程序的。 我正在jpopmenu中设置一个JTextField。无论我做什么,JTextField都会显示为禁用状态。代码有点复杂,但我制作了这个易于测试的代码片段 public static void main(String[] s) throws Exception { BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.generalNoTrans

我正在使用用于Java Swing应用程序的。 我正在
jpopmenu
中设置一个
JTextField
。无论我做什么,
JTextField
都会显示为禁用状态。代码有点复杂,但我制作了这个易于测试的代码片段

public static void main(String[] s)
throws Exception 
{
    BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.generalNoTranslucencyShadow;
    org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper.launchBeautyEyeLNF();

    final JPopupMenu popupTable = new JPopupMenu();
    // find panel
    JLabel findLabel = new JLabel("Filter for:");
    findLabel.setPreferredSize(new Dimension(60, 20));
    final JTextField findTextField = new JTextField();
    findTextField.setColumns(10);

    final JPanel container = new JPanel();
    container.setLayout(new FlowLayout(FlowLayout.LEFT, 10, 0));
    container.add(findLabel);
    container.add(findTextField);

    popupTable.add(container);

    JButton button = new JButton("Action");

    JPanel buttonPanel = new JPanel();
    buttonPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
    buttonPanel.add(button);

    JPanel panel = new JPanel();
    panel.setLayout(new BorderLayout());
    panel.add(popupTable, BorderLayout.CENTER);
    panel.add(buttonPanel, BorderLayout.SOUTH);

    final JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(900, 800);
    frame.getContentPane().setLayout(new BorderLayout());
    frame.getContentPane().add(panel, BorderLayout.CENTER);
    frame.setVisible(true);

    button.addActionListener
    (
        new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                int x = (frame.getWidth() / 2);
                int y = (frame.getHeight() / 2);

                popupTable.show(frame, x, y);
            }
        }
    );
}

如果我删除
LaF
(注释前两行),一切都会正常工作。
JTextField
是可编辑的。我先在这里问,希望我做错了什么。如果这被证明是一个bug,我将把它作为一个问题发布在Github上。

最后,它只是库中的一个小改动。作者:

你可以找到你的班级 org.jb2011.lnf.beautyeye.ch7_popup.transparcentpopupFactory源代码 在第416行,将“setFocusableWindowsState(false);”更改为 “setFocusableWindowsState(true);”或仅删除此行


这对于库的开发人员来说确实是一个问题,我建议您在github上提出一个bug,让他们看看。是的,我会这样做。我只是希望我做错了什么,毕竟这不是一个bug。我对Swing不是很熟悉,所以我想请你来试试我的运气。我试着使用系统的外观和感觉,似乎很有效。我认为这与窗口的“类型”有关,它是用来显示弹出窗口的,但我不是100%确定只是为了清楚,这只是一个展示。在原始代码中,弹出窗口作为弹出组件添加到右键单击后显示的表中。我不知道这是否有帮助或使事情复杂化。但我相信这是同样的行为。这就是我测试它的方式;)