【问题标题】:GridLayout not working in JPanelGridLayout 在 JPanel 中不起作用
【发布时间】:2015-02-06 16:18:06
【问题描述】:

我正在尝试使用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);

【问题讨论】:

    标签: java swing jpanel layout-manager grid-layout


    【解决方案1】:

    一个Component只能添加一次,并且只能有1个父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);
    }
    

    【讨论】:

    • 实际上,一个组件可以多次添加,但只有一个父级,将其从之前的容器中删除 - 我知道 nitpick ;)
    猜你喜欢
    • 1970-01-01
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-04
    • 2015-11-30
    相关资源
    最近更新 更多