首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Netbeans中向JFrame添加JPanel

在Netbeans中向JFrame添加JPanel
EN

Stack Overflow用户
提问于 2012-05-17 01:51:08
回答 7查看 22.7K关注 0票数 2

我在Netbeans中创建了JFrame类,并使用生成器添加了jPanel。我还有类,它扩展了JPanel。现在我想创建这个类的对象,并将他添加到JFrame中我的面板所在的位置,但我找不到正确的方法,因为我尝试的所有内容都没有结果

代码语言:javascript
复制
public static void main(String args[]) {
    
    java.awt.EventQueue.invokeLater(new Runnable() {

        public void run() {
            Frame f  = new Frame();
            jPanel1  = new MyPanel();
            f.pack();
            f.setVisible(true);
        }
    });

好的,也许我会给出更精确的例子:

第一个文件:

代码语言:javascript
复制
class MyPanel extends javax.swing.JPanel {
public MyPanel() {
        initComponents();
        
    }
}

另一个文件,带有Frame:

代码语言:javascript
复制
public class Frame extends javax.swing.JFrame {
public Frame() {
        initComponents();
}
public static void main(String args[]) {
        
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                Frame f  = new Frame();
                MyPanel p = new MyPanel();
                jPanel1 = p;
            }
        });
    }
private javax.swing.JButton jButton1;
private javax.swing.JPanel jPanel1;

并且我想在jPanel1 - object MyPanel的位置设置

EN

回答 7

Stack Overflow用户

发布于 2012-05-17 01:55:29

您的问题:您的MyPanel实例没有添加到主机中。

解决方案:将MyPanel实例添加到主框架的内容窗格中。

类似于:

代码语言:javascript
复制
JFrame f  = new JFrame();
MyPanel jPanel1  = new MyPanel();
f.getContentPane().add(jPanel1  );
f.pack();
f.setVisible(true);
票数 1
EN

Stack Overflow用户

发布于 2012-05-17 02:03:29

上面的答案是正确的-你需要将这个MyPanel添加到框架的contentPane中。

此外,您可能应该使用Swing而不是普通的AWT。代码将如下所示:

代码语言:javascript
复制
SwingUtilities.invokeLater(new Runnable() {

        @Override //annotation if you are using Java >= 1.5
        public void run() {
            JFrame f = new JFrame();
            MyPanel jPanel1 = new MyPanel();
            f.getContentPane().add(jPanel1);
            f.pack();
            f.setVisible(true);
        }
    });
票数 1
EN

Stack Overflow用户

发布于 2012-05-17 01:53:16

您需要将面板添加到框架中:

代码语言:javascript
复制
f.add(jPanel1)

下面的独立代码适用于我:

代码语言:javascript
复制
    public static void main(String[] args)
    {

        Frame f  = new Frame();
        Panel jPanel1  = new Panel();
        jPanel1.add(new Button("Hello"));
        f.add(jPanel1  );
        f.pack();
        f.setVisible(true);
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10623935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档