编程语言
首页 > 编程语言> > java – 你能为JFrame里面的JPanel设置一个永久大小吗?

java – 你能为JFrame里面的JPanel设置一个永久大小吗?

作者:互联网

我目前的问题是我有一个带有2×2 GridLayout的JFrame.在其中一个方块内,我有一个显示网格的JPanel.我正在与java swing库进行实地考察……看一看

Image

Java会自动扩展每个JLabel以适应屏幕.我希望它只是那些蓝色方块(水)和黑色边框而不是那个灰色空间.有没有办法我可以永久设置JPanel的大小,这样我就不必在获得精确尺寸之前将JFrame的大小改变一百万次,以便灰色空间消失?

我也想设置这些按钮的大小,因此它们不是那么大(BorderLayout用于按钮和TextField)

解决方法:

如果您希望两个棋盘保持相同的大小,那么您需要将它们分别包含在自己的JPanel中.将每个父JPanel设置为GridBagLayout的布局类型.为每个棋盘组件设置preferedSize,然后将它们添加到各自的容器中.默认情况下,GridBagLayout应该将每个板放在父JPanel的中心.因此,当窗口调整大小时,JPanel父区域将变大或变小,但内部的棋盘组件将保持相同的大小.

或者,您可以通过使每个棋盘方格为具有BorderLayout布局管理器的JPanel并将JLabel(蓝色背景颜色)添加到其BorderLayout.CENTER位置来调整窗口大小,从而将蓝色方块缩放到正确的大小.

至于你的按钮,尝试这样的事情:

JPanel theButtonPanel = new JPanel(new BorderLayout());
JButton button1 = new JButton("Fire");
JButton button2 = new JButton("Pass");
JButton button3 = new JButton("Forfiet");

JPanel innerButtonContainer = new JPanel(new Grid(1, 3, 8, 8));
innerButtonContainer.add(button1);
innerButtonContainer.add(button2);
innerButtonContainer.add(button3);

theButtonPanel.add(innterButtonContainer);

最后,考虑为Swing用户界面使用设计工具. Netbeans内置了一个出色的UI设计器.下载Netbeans here.

标签:grid-layout,java,swing,jlabel,size
来源: https://codeday.me/bug/20190827/1744182.html