如何在 GridBagLayout 中设置列权重和行权重?
java 8object oriented programmingprogramming
创建面板并设置布局 −
JPanel panel = new JPanel(); GridBagLayout layout = new GridBagLayout(); panel.setLayout(layout);
现在,设置约束,并设置列权重和行权重 −
GridBagConstraints gbc = new GridBagConstraints(); JLabel label = new JLabel("Rank: "); JTextArea text = new JTextArea(); text.setText("Add rank here..."); layout.columnWeights = new double[]{0.0f, 0.0f, 2.0f}; layout.rowWeights = new double[]{0.0f, 1.0f};
现在,设置标签的约束并将其添加到面板 −
gbc.gridx = 0; gbc.gridy = 0; layout.setConstraints(label, gbc); panel.add(label);
以下是在 GridBagLayout 中设置列权重和行权重的示例 −
示例
package my; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.WindowConstants; public class SwingDemo { public static void main(String[] args) { JFrame frame = new JFrame("Demo Frame"); JPanel panel = new JPanel(); GridBagLayout layout = new GridBagLayout(); panel.setLayout(layout); GridBagConstraints gbc = new GridBagConstraints(); JLabel label = new JLabel("Rank: "); JTextArea text = new JTextArea(); text.setText("Add rank here..."); layout.columnWeights = new double[]{0.0f, 0.0f, 2.0f}; layout.rowWeights = new double[]{0.0f, 1.0f}; gbc.gridx = 0; gbc.gridy = 0; layout.setConstraints(label, gbc); panel.add(label); gbc.gridx = 1; gbc.gridy = 1; layout.setConstraints(text, gbc); panel.add(text); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.add(panel); frame.setSize(550, 400); frame.setVisible(true); } }