gpt4 book ai didi

java - 空 JPanel 与其他 JPanel 的位置不正确

转载 作者:行者123 更新时间:2023-12-04 05:50:46 27 4
gpt4 key购买 nike

我正在使用 Swing 在 JPanel 中使用 BorderLayout 管理器构建一个带有 4 个 JPanel 的 GUI:

  • 一排标签
  • 一列JButtons
  • 一个显示区(它是一个扩展JPanel的类,没有添加任何东西,用作绘图区)
  • 另一列按钮

  • 我的代码如下所示:
        JPanel middle = new JPanel();
    middle.setLayout(new BorderLayout());
    middle.add(midLabels,BorderLayout.NORTH);
    middle.add(pickupButtons,BorderLayout.WEST);
    middle.add(simulation,BorderLayout.CENTER);
    middle.add(dropButtons,BorderLayout.EAST);

    模拟面板只是一个扩展的JPanel,它覆盖了paintComponent 来绘制图像。问题是,模拟区域在左边而不是中间:

    The wrong layout

    我真正想要的是:

    enter image description here

    编辑,这是一个例子,我是否需要使用不同的布局管理器来正确定位空的 JPanel?:
    import java.awt.*;
    import javax.swing.*;
    public class Test extends JFrame {
    final static int MAXFLOORS = 8;
    public Test() {
    setLayout(new BorderLayout());
    setTitle("Simulator");
    setVisible(true);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setSize(500, 500);

    JPanel simulation = new JPanel();
    JPanel dropButtons = new JPanel();
    JPanel pickupButtons = new JPanel();

    pickupButtons.setLayout(new GridLayout(MAXFLOORS, 1));
    dropButtons.setLayout(new GridLayout(MAXFLOORS, 1));
    setLayout(new BorderLayout());
    add(simulation,BorderLayout.CENTER);
    add(dropButtons,BorderLayout.EAST);
    add(pickupButtons,BorderLayout.WEST);

    for (int i = MAXFLOORS; i != 0; i--) {
    JButton pb = new JButton("F" + i);
    dropButtons.add(pb);

    JButton db = new JButton("F" + i);
    dropButtons.add(db);
    }
    repaint();
    }
    public static void main(String[] args) {
    new Test();
    }
    }

    最佳答案

    看看你的代码:

        for (int i = MAXFLOORS; i != 0; i--) {
    final JButton pb = new JButton("F" + i);
    dropButtons.add(pb);

    final JButton db = new JButton("F" + i);
    dropButtons.add(db);
    }

    您正在添加 dropButtons两次,而不是 pickupButtons .

    关于java - 空 JPanel 与其他 JPanel 的位置不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10079455/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com