java - 从不同的类添加 JPanel

标签 java swing

我正在尝试从不同的类添加一个简单的JPanel,只有一个JButton和一个JTextArea到GUI中。

我正在使用 IntelliJ IDEA 作为 swing 应用程序,没有错误。但是,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);
}
}

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

最佳答案

您忘记将 mainPanel 添加到 frame:

frame.add(mainPanel);

关于java - 从不同的类添加 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53978155/

相关文章:

java - 如何通过 com.android.volley.Request 发送数组类型参数

Java数组概念

java - 如何将一个 Java 应用程序插入到另一个应用程序的选项卡式 Pane 中

java - 为什么我的自定义 Swing 组件在我移动鼠标时重新绘制得更快? ( java )

java - JMenuitem - 单击 - 操作 - Java

Java 包命名约定和包含 "-"字符的域

java - 如何在java中安排一个 Action ?

java - 通知历史点击时如何改变cardview的背景颜色?

java - 如何在不破坏界面的情况下制作可滚动的客户端?

java - 如何将对象输出到 JTable 中,以便编辑字段会影响原始对象的状态?