java - GridLayout 在 JPanel 中不起作用

标签 java swing jpanel layout-manager grid-layout

我尝试使用 GridLayout 多次将 JButton 添加到我的 JPanel。但出于某种原因,每次我运行程序时它只显示 1 个按钮。

代码如下:

    jPLeft = new JPanel();
    jPLeft.setPreferredSize(new Dimension(600,500));
    jPLeft.setBackground(Color.WHITE);
    jPLeft.setLayout(new GridLayout(2,2));
    jPLeft.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
    window.add(jPLeft, BorderLayout.CENTER);

    imageSand = new ImageIcon("..\\CSY1020\\src\\resources\\sand.jpg");
    jBSand = new JButton(imageSand);
    jPLeft.add(jBSand);
    jPLeft.add(jBSand);
    jPLeft.add(jBSand);
    jPLeft.add(jBSand);

最佳答案

一个Component只能添加一次,并且只能有1个parent Container

imageSand = new ImageIcon("..\\CSY1020\\src\\resources\\sand.jpg");
for (int i = 0; i < 4; i++) {
    JButton jBSand = new JButton(imageSand);
    jPLeft.add(jBSand);
    jPLeft.add(jBSand);
    jPLeft.add(jBSand);
    jPLeft.add(jBSand);
}

关于java - GridLayout 在 JPanel 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28370141/

相关文章:

java - JScrollPane 防止组件缩小到其首选大小以下

Java - JFrame 根本不显示其内容

java - 捕获/保存 JPanel 图像

java - 程序多次运行后给出错误结果

java - Action 监听器不适用于某些按钮

通过 https 访问 Web 服务时出现 java.security.PrivilegedActionException

java - 如何使用 Cloneable 类型作为 Java 泛型类的参数

java - 从给定的类路径获取文件

java - 将 JPanel 和 PaintComponent 链接在一起

java - 在 TestNG(Selenium with Java)中运行测试套件后如何收集所有 System.out.print ("")结果