gpt4 book ai didi

Java Swing 布局困惑/困难

转载 作者:行者123 更新时间:2023-11-30 06:28:13 27 4
gpt4 key购买 nike

我仍在尝试找出 JavaSwing 中的 BorderLayout,这真的很令人沮丧。

我希望能够将一个 Pane 拆分为 3 个包含的子面板,但我不完全确定如何包含它。

这是我的游戏类,它包含面板 ControlPanel、StatePanel 和 Board(实际上只是 JPanel 的扩展)。我想将面板分成这三个部分,如下所示: simple picture

到目前为止,这是我的代码:

public class Game extends JPanel {
private int panespace=2;
private JPanel ControlPanel;
private JPanel StatePanel;
private Board board;
public Game()
{
setLayout(new BorderLayout(panespace, panespace));
ControlPanel=new JPanel();
ControlPanel.setLayout(new BorderLayout(panespace, panespace));
ControlPanel.setBorder(new LineBorder(Color.red, 10));
ControlPanel.setSize(100,100);
super.add(ControlPanel, BorderLayout.EAST);
StatePanel=new JPanel();
StatePanel.setLayout(new BorderLayout(panespace, panespace));
StatePanel.setBorder(new LineBorder(Color.green, 10));
StatePanel.setSize(200, 200);
super.add(StatePanel, BorderLayout.EAST);
board = new Board();
board.setLayout(new BorderLayout(panespace, panespace));
board.setBorder(new LineBorder(Color.yellow, 10));
board.setSize(300, 300);
super.add(board, BorderLayout.NORTH);
setVisible(true);
}
}

这最好使用 BorderLayout,但我似乎做错了。我已经尝试阅读 Oracle 提供的 Material ,但它们并不是特别有用。此时,我正处于想要硬编码值的地步,但我知道我应该能够拆分它,让每个面板尽可能多地占据更大的游戏面板。

最佳答案

正如 mkhelif 所说,你不能在同一个插槽中有两个东西。你想要的是 board 进入 CENTER,然后在 SOUTH 中创建另一个包含 ControlPanel 的 JPanel StatePanelFlowLayout 中。

关于Java Swing 布局困惑/困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12853977/

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