Java JPOppMenu中的BeautyEye LaF JTextField已禁用
我正在使用用于Java Swing应用程序的。 我正在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
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%确定只是为了清楚,这只是一个展示。在原始代码中,弹出窗口作为弹出组件添加到右键单击后显示的表中。我不知道这是否有帮助或使事情复杂化。但我相信这是同样的行为。这就是我测试它的方式;)