Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在jframe中显示jpanel的图形界面_Java_Swing_Netbeans_Graphic - Fatal编程技术网

Java 在jframe中显示jpanel的图形界面

Java 在jframe中显示jpanel的图形界面,java,swing,netbeans,graphic,Java,Swing,Netbeans,Graphic,我所做的是:我创建了java.swing.JPanel public class TableInterfaceBDD extends javax.swing.JPanel 然后,我在该类中创建了所有文本字段区域、Jtable等 然后我创建了java.swing.JFrame的子类,它将是我的主类 public class MainTableInterface extends javax.swing.JFrame 我在MainTableInterface中编写了这段代码: public Ma

我所做的是:我创建了
java.swing.JPanel

public class TableInterfaceBDD extends javax.swing.JPanel 
然后,我在该类中创建了所有文本字段区域、Jtable等

然后我创建了
java.swing.JFrame
的子类,它将是我的主类

public class MainTableInterface extends javax.swing.JFrame
我在
MainTableInterface
中编写了这段代码:

public MainTableInterface() {
    initComponents();
    TableInterfaceBDD pan = new TableInterfaceBDD();
    this.setContentPane(pan);
    this.setVisible(true);
    this.validate();
}

但是我在TableInterfaceBDD上使用的图形界面没有显示出来。你能帮我吗?

我的第一个建议是从教程开始

public class Main {

  public static void main(String[] args) {
    SwingUtilites.invokeLater(new Runnable() {
      public void run() {
        JFrame frame = new YourFrame(title, new YourPanel());
        frame.pack();
        frame.setVisible(true);
      }
    };
  }
}

public class YourFrame extends JFrame {
  public YourFrame(String title, JPanel panel) {
    super(title);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    add(panel, BorderLayout.CENTER);
  }
}

public class YourPanel extends JPanel {
  // your panel
}
也就是说,由于您的
TableInterfaceBDD
类是
JPanel
,因此您可以将其添加到其他组件,例如框架的内容窗格:

public class MyGui() {

    public void createAndShowGui() {

        JPanel yourCustomPanel = new TableInterfaceBDD();

        JFrame frame = new JFrame("Demo");
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);        
        frame.add(yourCustomPanel );
        frame.pack(); // don't forget to pack() the frame
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}
然后在主要方法中:


为什么要将JFrame子类化?我建议您只创建一个常规命令,并调用构造函数中列出的所有命令。。。此外,在框架的构造函数中调用this.setVisible(true)会给我敲响警钟@ControlAltDel好的建议之外,还缺少对方法的调用。您也不应该直接设置内容窗格,而是将您的面板添加到其中。我的项目是在netbeans中创建一个组件。因此,为了实现这一点,我必须使用一个属于Jpanel扩展的类。@dic19如何实现这一点?
public static void main(String[] args) {
   SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            new MyGui().createAndShowGui();
        }
    });
}