Java Swing:在NetBeans中按代码添加组件

时间:2014-01-05 18:29:39

标签: java swing netbeans jpanel jradiobutton

我正在使用NetBeans,我有一个JFrame,我使用NetBeans的调色板为其添加了JPanel

我想手动向JRadioButton添加JPanel,所以这是我在构造函数中尝试的代码:

ButtonGroup group = new ButtonGroup();
JRadioButton btn1 = new JRadioButton("btn1 ");
JPanel1.add(btn1);

但是当我运行JFrame时,我看不到JRadioButton在任何地方,但是当我使用NetBens's调色板添加它时它会起作用。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:7)

  1. 确保JPanel未使用GroupLayout。大多数其他布局都可以正常工作,但目前可能,JPanel的默认FlowLayout效果最好。
  2. 请务必在添加组件后在JPanel上调用revalidate()repaint() if 在GUI渲染后添加组件,例如在按钮推。
  3. 如果仍有问题,请显示您的代码。
  4. 一般建议:在理解了GUI库的基础之后,避免使用代码生成实用程序,这里是Swing。你不会后悔这样做。

答案 1 :(得分:3)

NetBeans GUI Builder的问题在于它会为您初始化所有内容,除非您在其他平台上打开文件,否则无法更改代码。在这种情况下,您可能会完全搞乱代码。

我可以建议的是尝试这样的事情

  • 使用您在JPanel窗格中设置的首选大小创建一个空的property。您可能还希望根据您的要求设置布局。
  • initComponent()之后添加JRadioButtons

     public MyGUI(){
         initComponents();
         ButtonGroup group = new ButtonGroup();
         JRadioButton btn1 = new JRadioButton("btn1 ");
         jPanel1.add(btn1);
         jpanel1.revalidate();    // as @Hovercraft Full Of Eels suggested
         jPanel1.repaint();
     }