java - 如何在jFrame中for循环jPanel?

标签 java swing layout-manager

请问为什么我的 jPanel 没有出现在 jFrame 中?我想让 5 个蓝色 jPanel 出现在 jFrame 中,但为什么我的 jFrame 中只出现 1 个蓝色 jPanel?感谢您的帮助!

public class NewJFrame2 extends javax.swing.JFrame {

    JFrame frame = new JFrame();
    JPanel panel = new JPanel();
/**
 * Creates new form NewJFrame2
 */
public NewJFrame2() {
    initComponents();
    JPanel[] panelArray = new JPanel[5];
    JButton btnArray[] = new JButton[5];
    for(int i = 0; i<5;i++)
    {
        panelArray[i] = new JPanel();
        //panelArray[i].setVisible(true);
        System.out.println(panelArray[i]);
        javax.swing.border.Border border = BorderFactory.createLineBorder(Color.BLUE, 5);
        panelArray[i].setBackground(Color.YELLOW);
        panelArray[i].setBorder(border);
        frame.getContentPane().add(panelArray[i]);

    }

    frame.setSize(new Dimension(500, 400));

    frame.setLocationRelativeTo(null);

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    frame.setTitle("A Simple JFrame");

    frame.setVisible(true);
}

最佳答案

正如评论中提到的,您需要一个 LayoutManager。

当前的问题是您要将所有五个面板添加到框架上完全相同的空间中。为了解决这个问题,您需要为框架提供一个结构,将不同的坐标与不同的区域相关联。

This answer包含一个很好的起点,可以让您开始使用 Java 中的布局。

关于java - 如何在jFrame中for循环jPanel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54672817/

相关文章:

java - 带有可滚动对象的 JDialog

java - 当只使用一个单元格时,如何在 Miglayout 中强制每行 4 个单元格且宽度相等?

java - 多个参数的多重分派(dispatch)

java - 修复了 java 中 JScrollPane/JPanel 中的项目数

java - 删除 @ManyToMany 关联期间发生 Hibernate 异常

java - 直接从 JComponent 重写paintComponent

java - 根据要求动态切换布局管理器是一个好习惯吗?

java - 不同尺寸的 Swing 面板

java - 如何同时显示2个不同的面板?

java - 如果在代理模式中,我们在代理类中有接口(interface)而不是实际的具体主题,它是否等同于装饰器模式