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();
}
});
}