Java GridBagLayout函数(如gridwidth/height和gridx/y)如何工作以缩放GUI的大小?
我最近被介绍到GridBagLayout来代替vanilla JPanel布局,但是我在使用gridwidth/height和gridx/y等函数时遇到了问题。我不确定它们在改变GUI的大小和按钮的位置时是如何工作的。下面是我的教授给我的一段代码供我参考,我试着摆弄一些数字,但结果从来没有像我预期的那样,我也不知道为什么 编辑1:为了澄清,我想知道gridwidth、gridheight、gridx和gridy函数是如何调整GUI大小和按钮位置的Java GridBagLayout函数(如gridwidth/height和gridx/y)如何工作以缩放GUI的大小?,java,swing,layout-manager,gridbaglayout,gridx,Java,Swing,Layout Manager,Gridbaglayout,Gridx,我最近被介绍到GridBagLayout来代替vanilla JPanel布局,但是我在使用gridwidth/height和gridx/y等函数时遇到了问题。我不确定它们在改变GUI的大小和按钮的位置时是如何工作的。下面是我的教授给我的一段代码供我参考,我试着摆弄一些数字,但结果从来没有像我预期的那样,我也不知道为什么 编辑1:为了澄清,我想知道gridwidth、gridheight、gridx和gridy函数是如何调整GUI大小和按钮位置的 import java.awt.*; impor
import java.awt.*;
import javax.swing.*;
class Bar1 {
public static void main(String[] args) {
JFrame frame = new JFrame();
JPanel panel = new JPanel();
panel.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
c.gridx=0;
c.gridy=0;
c.gridwidth=2;
c.gridheight=1;
c.weightx = 2;
c.weighty = 1;
c.fill = GridBagConstraints.BOTH;
JButton b = new JButton("Hello");
panel.add(b, c);
c.gridx=0;
c.gridy=1;
c.gridwidth=1;
c.gridheight=1;
JButton b2 = new JButton("World");
panel.add(b2, c);
c.gridx=1;
c.gridy=1;
c.gridwidth=1;
c.gridheight=1;
JButton b3 = new JButton("!!!");
panel.add(b3, c);
frame.add(panel);
frame.pack();
frame.setVisible(true);
}
}
但是结果从来没有像我预期的那样
——我们也不是读心术的人。我们不知道你期望发生什么。阅读上Swing教程中的部分,了解所有约束条件的解释和一个工作示例。您就得到了答案。本教程解释了约束是如何工作的。您在上一个问题()中还获得了指向教程的链接。所以请阅读教程。如果您在本教程中有不理解的地方,请提出具体问题。我们不知道您的代码需要做什么,也不知道您从教程中发现了什么让人困惑。gridwidth
和gridheight
确定组件可以占用的单元格数量gridx
和gridy
确定组件在何处开始的单元格这与教程中的解释不同为了澄清,我想知道gridwidth、gridheight、gridx和gridy函数如何调整GUI的大小和按钮的位置。
-教程中的哪一部分您不理解?您在第一行中指定了一个组件,该组件占用2个单元格,在第二行中指定了两个组件,每个组件占用一个单元格。关于你的代码,你还不了解什么?@DavidL,。。。懒得阅读已经制作好的指南
——完全正确。因此,请向我们证明,当您获得链接时,您确实阅读了教程<代码>我就是不能理解它。-所以请引用你不理解的句子,然后我们可以扩展它。我们猜不出什么措词使你困惑。我仍然看不出教程解释和Mad解释之间的区别,特别是当你看到你发布的代码和结果的布局时。你期望发生什么不同的事情?