从其他类添加JPanel

时间:2018-12-30 13:49:16

标签: java swing

我正在尝试从GUI中添加仅包含JPanelJButton的不同类的简单JTextArea

我正在为swing应用程序使用IntelliJ IDEA,并且没有错误。但是,JPanel根本不会出现/没有显示。

import javax.swing.*;
import java.awt.*;
import java.awt.event.ContainerAdapter;
import java.awt.event.ContainerEvent;

public class GUI {
private JPanel mainPanel;
private JPanel mainInner;


public GUI() {
    mainPanel.addContainerListener(new ContainerAdapter() {
        @Override
        public void componentAdded(ContainerEvent e) {
            super.componentAdded(e);
            System.out.println("component Added");
        }
    });
}

public void start() {
    JFrame frame = new JFrame("GUI");
    frame.setContentPane(new GUI().mainPanel);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLayout(new BorderLayout());

    InnerPanel inner = new InnerPanel();
    mainInner = inner.getMainInner();

    inner.setLayout(new BorderLayout());
    mainPanel.setLayout(new BorderLayout());
    mainPanel.add(mainInner, BorderLayout.CENTER);

    mainPanel.revalidate();
    mainPanel.repaint();
    frame.pack();
    frame.setVisible(true);
}
}

组件侦听器显示已添加了组件,但未显示。

1 个答案:

答案 0 :(得分:1)

您忘记将mainPanel添加到frame

frame.add(mainPanel);