gpt4 book ai didi

java - JPanel 填充整个 JFrame

转载 作者:行者123 更新时间:2023-11-29 03:39:23 25 4
gpt4 key购买 nike

我正在编写一个简单的游戏,我正在使用一个包含网格和 JPanel 的 JFrame。
这是我的伪代码:

void MyJframeConstructor()
{
// some basic bootstrap logic
// calling repaint to draw grid
repaint();

// Grid is drawn fine.
// Showing user a confirm dialog box on which I add below JPanel.

if(confirmed)
{
// GameInfoPanel extends JPanel.
infoPanel = new GameInfoPanel(new FlowLayout(FlowLayout.LEFT));
infoPanel.setPreferredSize(new Dimension(400, 100));
infoPanel.setLocation(500, 50);
this.add(infoPanel);
infoPanel.validate();
}
}

我的问题是我的 JFrame 或窗口是 480 x 680。
在此范围内,我在 480 x 480 区域绘制了一个网格。
在其下方,我希望 JPanel 位于 500,50,尺寸为 400, 100。
但是,当我运行这段代码时,一旦用户用 OK 确认,JPanel 就会填满整个 JFrame。
如何在应用程序的整个生命周期内将面板保持在其位置并保持大小一致?
非常感谢任何帮助,并提前致谢。

最佳答案

Within this I am drawing a grid in 480 x 480 area.

  • 覆盖 PreferredSize for JPanel

  • 然后调用 JFrame.pack()JFrame.setVisible(true) 作为最后一行代码

  • 必须阅读 InitialThread

  • 如果只有一个JPanel(JPanel 填充整个JFrame)则使用built_in BorderLayout in JFrame f.e. myFrame.add(infoPanel, BorderLayout.CENTER) 不是 FlowLayout

  • 不要扩展 JFrame 创建此 Object 作为局部变量

关于java - JPanel 填充整个 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13899961/

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