发生了非法的反射访问操作

时间:2019-12-25 06:33:16

标签: java swing intellij-plugin

使用IntelliJ插件并尝试在JPanel上单击时将JButton添加到addLabelButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { contentPane.add(new JLabel("Hi, JLabel!")); contentPane.revalidate(); contentPane.repaint(); } }); ,这是我的代码的一部分。

JButton

当我点击$(this).val('');时,出现运行时错误。

  

警告:发生了非法的反射访问操作

     

警告:com.intellij.util.ReflectionUtil的非法反射访问   到方法sun.java2d.SunGraphicsEnvironment.isUIScaleEnabled()

     

警告:请考虑将此内容报告给以下人员:   com.intellij.util.ReflectionUtil

     

警告:使用--illegal-access = warn启用进一步警告   非法的反射式访问操作

     

警告:以后将拒绝所有非法访问操作   释放

The Full Error Message

注意:

  

Java版本= 11.0.4 + 10

     

IntelliJ版本= 11.0.5 + 10-b520.17 x86_64

1 个答案:

答案 0 :(得分:1)

经过一番研究之后,我明白了。问题是,如果JPanel的{​​{1}}等于Layout Manager,则无法将组件添加到JPanel

如果您遇到相同的问题。

  • 转到GridLayoutManager(IntelliJ)
  • 选择要向其添加组件的GUI Designer
  • 从属性面板中,将JPanel更改为Layout ManagerGridLayoutManager(IntelliJ)以外的任何内容

IntelliJ GUI Designer properties panel

或以编程方式

FormLayout(JGoodies)