Java GridBagLayout列宽、行高、列权重和行权重
我试图学习使用gridbaglayout,但问题是,在更改代码后,我仍然不明白新的int[]{}对于.columnwidths和.rowHeights意味着什么,而新的double[]{}对于.columnWeights和.rowWeights意味着什么。有人能举个例子解释一下它是如何工作的吗?比如如何确定在新int{}和新double[]{}中设置的数字Java GridBagLayout列宽、行高、列权重和行权重,java,swing,layout-manager,gridbaglayout,Java,Swing,Layout Manager,Gridbaglayout,我试图学习使用gridbaglayout,但问题是,在更改代码后,我仍然不明白新的int[]{}对于.columnwidths和.rowHeights意味着什么,而新的double[]{}对于.columnWeights和.rowWeights意味着什么。有人能举个例子解释一下它是如何工作的吗?比如如何确定在新int{}和新double[]{}中设置的数字 import java.awt.Color; import java.awt.GridBagConstraints;
import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;
public class UI extends JPanel {
private JPanel clickMePanel,panel_1,panel_2;
private JButton button;
public UI() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
e.printStackTrace();
}
GridBagLayout gridBagLayout = new GridBagLayout();
gridBagLayout.columnWidths = new int[]{0, 0};
gridBagLayout.rowHeights = new int[]{0, 0};
gridBagLayout.columnWeights = new double[]{1.0, Double.MIN_VALUE};
gridBagLayout.rowWeights = new double[]{0.0, 1.0, Double.MIN_VALUE};
setLayout(gridBagLayout);
clickMePanel = new JPanel();
clickMePanel.setBackground(Color.BLACK);
GridBagConstraints gbcClickMePanel = new GridBagConstraints();
gbcClickMePanel.fill = GridBagConstraints.BOTH;
gbcClickMePanel.gridx = 0;
gbcClickMePanel.gridy = 0;
add(clickMePanel, gbcClickMePanel);
GridBagLayout gbl_panel = new GridBagLayout();
gbl_panel.columnWidths = new int[]{0,0};
gbl_panel.rowHeights = new int[]{0,0};
gbl_panel.columnWeights = new double[]{0.0, 0.0, 1.0, Double.MIN_VALUE};
gbl_panel.rowWeights = new double[]{0.0, Double.MIN_VALUE};
clickMePanel.setLayout(gbl_panel);
button = new JButton("button");
GridBagConstraints gbcBtn = new GridBagConstraints();
gbcBtn.gridx = 0;
gbcBtn.gridy = 0;
clickMePanel.add(button, gbcBtn);
}
public static void main(String args[]){
JFrame frame = new JFrame();
frame.getContentPane().add(new UI());
frame.pack();
frame.setSize(600, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
“有人能举个例子来解释它是如何工作的吗?”所以这不是一个教程网站,而是一个问答网站,在这里最好问一个具体的(但不要太宽泛)问题。我建议在你最喜欢的搜索引擎中插入“如何使用X”,这里的X是“GridBagLayout”。投票关闭。数组中的每个元素都是一个列或行索引(单元格)。哦,还有15年了,我从来没有这样用过;)@那么我是不是错误地使用了gridbaglayout?我不会说你用错了,只是我从来没有这样使用过,而是使用
GridBagConstraints
来确定每个组件的单个约束。对我来说,它们更易于使用和管理,但这就是我。有关更多详细信息,请参阅1。我在第一节中使用了jlabel数组。行(GBC严格来说是关于列的),然后创建矩阵,GUI的其余部分是关于列和行的,==MigLayout或TableLayout 2。加上一个用于SSCCE/MCVE,3。但投票也要结束