Показать графический интерфейс jpanel в jframe

Что я сделал: я создал подкласс 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, не отображается. Вы можете помочь мне с этим?

2 ответа

Решение

Мое самое первое предложение состоит в том, чтобы начать с учебника Как сделать рамки (Основное Windows).

Это, как говорится, так как ваш 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);
    }
}

Тогда в основном методе:

public static void main(String[] args) {
   SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            new MyGui().createAndShowGui();
        }
    });
}
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
}
Другие вопросы по тегам