Java 如何将JPanel类添加到netbeans中的JFrame表单类中?
我在netbeans中创建了两个类;其中一个是JPanel表单,另一个是JFrame表单; 如何将JPanel类添加到JFrame表单类中? 我在JFrame表单类的构造函数中编写了这段代码,但它不起作用Java 如何将JPanel类添加到netbeans中的JFrame表单类中?,java,swing,jframe,jpanel,Java,Swing,Jframe,Jpanel,我在netbeans中创建了两个类;其中一个是JPanel表单,另一个是JFrame表单; 如何将JPanel类添加到JFrame表单类中? 我在JFrame表单类的构造函数中编写了这段代码,但它不起作用 public JFrameClass() { initComponents(); this.getContentPane().add(jpc = new JPanelClass()); jpc.setVisible(true);
public JFrameClass() {
initComponents();
this.getContentPane().add(jpc = new JPanelClass());
jpc.setVisible(true);
this.pack();
this.setVisible(true);
}
如何将JPanel类添加到netbeans中的JFrame表单类中
在JFrame
类中,只需设置JPanel
并将其添加到容器中即可
JPanel panel = new JPanelClass();
controls.add(panel);
注意:您应该有一些名为createAndAddComponents()
的私有void方法,并在构造函数中调用它
public JFrameClass() {
...
createAndAddCompontents();
}
然后,当您想要执行应用程序时,在main()方法中,您应该像这样调用它:
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
YouJFrameClass initAndShowComponents = new YouJFrameClass();
initAndShowComponents.setVisible(true);
}
});
您需要确保从JFrameClass
所在的位置可以看到JPanelClass
。
然后执行以下操作:
JPanelClass jpc = new JPanelClass()
this.getContentPane().add(jpc);
另外,不需要调用jpc.setVisible(true)代码>
生成的代码应为:
public JFrameClass() {
initComponents();
JPanelClass jpc = new JPanelClass()
getContentPane().add(jpc);
pack();
setVisible(true);
}
设置JPanel的边界,以便容器知道在哪里绘制它
public void run() {
NewJFrame frame = new NewJFrame();
NewJPanel panel = new NewJPanel();
panel.setBounds(0, 0, 200, 200);
frame.add(panel);
frame.setVisible(true);
}
“没用。”你以为会发生什么?发生了什么事?为了更快地获得更好的帮助,请发布一篇文章。首先尝试一些基本的java教程<代码>this.getContentPane().add(jpc=newJPanelClass())代码>我这样做了:public JFrameClass(){initComponents();this.add(jpc=new JPanelClass());}但是什么也没发生:调用setBounds
以后会导致问题。使用布局。将内容放入面板,使其具有“自然非零大小”,或者如果它是“纯渲染”组件,则设置或覆盖首选大小。@Blueferi回答选择不当(您尚未接受它)。接下来的10个问题将围绕“如何修复组件布局?”@Andrew Thompson我得到了你的建议,并使用了布局;),但一开始,这个答案帮助我找到解决问题的方法:)