gpt4 book ai didi

Java Swing JPanel 大小不起作用

转载 作者:行者123 更新时间:2023-12-01 22:16:53 27 4
gpt4 key购买 nike

    frame = new JFrame();
frame.setTitle("Chess Legends");
frame.setBounds(100, 100, 810, 830);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//game panel
panelGame = new JPanel();
panelGame.setBackground(new Color(0, 0, 0));
frame.getContentPane().add(panelGame, BorderLayout.CENTER);
panelGame.setLayout(null);

//board panel
panelBoard = new JPanel();
panelBoard.setBackground(new Color(255, 255, 255));
panelBoard.setBounds(5, 5, 800, 800);
panelGame.add(panelBoard);

这是我的代码。我希望 panelGame 填满整个框架。然后我希望 panelBoard 在 panelGame 中占据 800x800 的尺寸。但我的面板似乎太大了。

框架已经大于 panelBoard 的边界,但是当 GUI 启动时..我的 panelBoard 延伸到框架之外。为什么?

最佳答案

my panelBoard extends outside the frame. Why??

框架具有占用空间的装饰(边框、标题栏)。

不要使用空布局,也不要尝试对尺寸进行微观管理。相反,使用布局管理器和 pack() 框架并让布局管理器确定大小。

如果您希望面板尺寸为 800 x 800,请重写 getPreferredSize() 方法以返回该尺寸。

然后你做类似的事情:

PanelBoard panelBoard = new PanelBoard(); // with overridden getPreferredSize()

JPanel panelGame = new JPanel( new BorderLayout() );
panelGame.setBorder( new EmptyBorder(5, 5, 5, 5) );
panelGame.add( panelBoard );

frame.add( panelGame );
frame.pack();
frame.setVisible();

关于Java Swing JPanel 大小不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30808206/

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