Показать графический интерфейс 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
}