gpt4 book ai didi

Java Swing 布局,3 个面板

转载 作者:行者123 更新时间:2023-12-02 03:50:48 25 4
gpt4 key购买 nike

所以我尝试在业余时间制作我的第一个小型 Java 游戏。我在布局方面遇到问题。

我希望游戏具有特定的尺寸(600 高度,800 宽度),并且我希望主框架内有 3 个“面板”。其中一个是主游戏框架,高度为 500,宽度为 600,右侧有一个库存/信息面板,高度为 500,宽度为 200,最后一个文本面板位于底部,用于保存高度为 100 的信息宽度为 800。到目前为止,这就是我所拥有的。 (我没有调整面板高度,因为我发现没有任何变化)。

我将如何制作一个框架,里面有这 3 个面板。我查看了如何使用 GridBagLayout() 但似乎我让事情变得更糟并且不完全理解如何使用它,即使有文档(是的,我很愚蠢)。

LMK,如果您不理解我的部分代码或我的帖子。谢谢。

package Frame;

import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class frame {

//Sets variables such as height, width and title
private JFrame frame;
private Canvas canvas;
private JPanel mainWindow, infoWindow, textWindow;

//main constructor to create the frame of the game. Is called in Launcher
//Sets the parameters of the frame. User defined in main.
public frame(){
createDisplay();
}
//sets the properties of the display
private void createDisplay() {
frame = new JFrame();
frame.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
frame.setTitle("Island Man");
frame.setSize(800, 600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setVisible(true);

canvas = new Canvas();
canvas.setSize(new Dimension(800, 600));
canvas.setMaximumSize(new Dimension(800, 600));
canvas.setMinimumSize(new Dimension(800, 600));

mainWindow = new JPanel();
mainWindow.setBackground(Color.CYAN);
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 0;
c.gridy = 0;
c.weightx = 2;
c.weighty = 2;
frame.add(mainWindow, c);

infoWindow = new JPanel();
infoWindow.setBackground(Color.GREEN);
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 3;
c.gridy = 0;
c.weightx = 0;
c.weighty = 2;
frame.add(infoWindow, c);

textWindow = new JPanel();
textWindow.setBackground(Color.MAGENTA);
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 3;
c.gridy = 0;
c.weightx = 0;
c.weighty = 3;
frame.add(textWindow, c);

frame.add(canvas);
frame.pack();
}
}

最佳答案

一种方法是使用 BorderLayout,其中主面板位于中心,库存面板位于东,文本面板位于南。请务必设置每个面板的首选尺寸。

关于Java Swing 布局,3 个面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35897253/

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