我正在编写一个简单的游戏,我正在使用一个包含网格和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。
如何在整个应用程序的使用寿命期间将面板保持在其位置并保持尺寸一致?
任何帮助都非常感谢,并提前感谢。
答案 0 :(得分:4)
在此我正在绘制一个480 x 480区域的网格。
然后拨打JFrame.pack()
和JFrame.setVisible(true)
作为最后一行代码
必须阅读InitialThread
如果只有一个JPanel
(JPanel filling entire JFrame
),则使用built_in BorderLayout
in JFrame
f.e. myFrame.add(infoPanel, BorderLayout.CENTER)
不是FlowLayout
不要扩展JFrame
创建此Object
作为本地变量