gpt4 book ai didi

java - 了解 GridBagConstraints gridx 和 gridy

转载 作者:行者123 更新时间:2023-11-29 05:16:10 24 4
gpt4 key购买 nike

我正在尝试使用 gridx 和 gridy 约束来创建如下所示的界面(忽略“下一步”按钮)。前两个 JLabel-JTextField 对工作正常,但我不确定我为其余 10 个字段设置了什么 gridx 和 gridy 值。

enter image description here

代码:

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;

import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class InitialPanel extends JPanel {

private static final long serialVersionUID = -3159520372145273536L;

/**
* @param gridBagLayout
*/
public InitialPanel() {

super();

initComponents();
}

/**
* For each component to be added to this container:
*
* 1. Create the component
* 2. Set instance variables in the GridBagConstraints instance
* 3. Add component to panel.
*
*/
private void initComponents() {

this.setLayout(new GridBagLayout());

GridBagConstraints gridBagConstraints = new GridBagConstraints();

// All mandatory fields.

// 1.

gridBagConstraints.gridx = 0;

gridBagConstraints.gridy = 0;

JLabel hwCodeLabel = new JLabel("HW CODE:");

this.add(hwCodeLabel, gridBagConstraints);


JTextField hwCodeTextField = new JTextField("");

gridBagConstraints.gridx = 1;

gridBagConstraints.gridy = 0;

hwCodeTextField.setColumns(10);

this.add(hwCodeTextField, gridBagConstraints);


// 2.

JLabel publisherIdLabel = new JLabel("PUBLISHER ID:");

gridBagConstraints.gridx = 0;

gridBagConstraints.gridy = 1;

this.add(publisherIdLabel, gridBagConstraints);



JTextField publisherIdTextField = new JTextField("");

gridBagConstraints.gridx = 1;

gridBagConstraints.gridy = 1;

publisherIdTextField.setColumns(10);

this.add(publisherIdTextField,gridBagConstraints);



/*// 3.
JLabel journalTitleLabel = new JLabel("JOURNAL TITLE:");

gridBagConstraints.gridx = 0;

gridBagConstraints.gridy = 2;

this.add(journalTitleLabel,gridBagConstraints);




JTextField journalTitleTextField = new JTextField();

gridBagConstraints.gridx = 2;

gridBagConstraints.gridy = 2;

journalTitleTextField.setColumns(10);

this.add(journalTitleTextField,gridBagConstraints);


// 4.


JLabel printISSNLabel = new JLabel("PRINT ISSN:");

gridBagConstraints.gridx = 3;

gridBagConstraints.gridy = 1;

this.add(printISSNLabel,gridBagConstraints);



JTextField printISSNTextField = new JTextField();

gridBagConstraints.gridx = 3;

gridBagConstraints.gridy = 2;

journalTitleTextField.setColumns(10);

this.add(printISSNTextField,gridBagConstraints);


// 5.

JLabel eISSNLabel = new JLabel("ELECTRONIC ISSN:");

gridBagConstraints.gridx = 4;

gridBagConstraints.gridy = 1;

this.add(eISSNLabel,gridBagConstraints);


JTextField eISSNTextField = new JTextField();

gridBagConstraints.gridx = 4;

gridBagConstraints.gridy = 2;

journalTitleTextField.setColumns(10);

this.add(eISSNTextField,gridBagConstraints);


// 6.

JLabel publisherNameLabel = new JLabel("PUBLISHER NAME:");

gridBagConstraints.gridx = 5;

gridBagConstraints.gridy = 1;

this.add(publisherNameLabel,gridBagConstraints);



JTextField publisherNameTextField = new JTextField();

gridBagConstraints.gridx = 5;

gridBagConstraints.gridy = 2;

journalTitleTextField.setColumns(10);

this.add(publisherNameTextField,gridBagConstraints);



// 7.

JLabel publisherLOCLabel = new JLabel("PUBLISHER LOCATION:");

gridBagConstraints.gridx = 6;

gridBagConstraints.gridy = 1;

this.add(publisherLOCLabel,gridBagConstraints);



JTextField publisherLOCTextField = new JTextField();

gridBagConstraints.gridx = 6;

gridBagConstraints.gridy = 2;

journalTitleTextField.setColumns(10);

this.add(publisherLOCTextField,gridBagConstraints);



// 8.

JLabel coverDateLabel = new JLabel("COVER DATE:");

gridBagConstraints.gridx = 7;

gridBagConstraints.gridy = 1;

this.add(coverDateLabel,gridBagConstraints);


JTextField coverDateTextField = new JTextField();

gridBagConstraints.gridx = 7;

gridBagConstraints.gridy = 2;

journalTitleTextField.setColumns(10);

this.add(coverDateTextField,gridBagConstraints);


// 9.

JLabel volumeLabel = new JLabel("VOLUME:");

gridBagConstraints.gridx = 8;

gridBagConstraints.gridy = 1;

this.add(volumeLabel,gridBagConstraints);



JTextField volumeTextField = new JTextField();

gridBagConstraints.gridx = 8;

gridBagConstraints.gridy = 2;

journalTitleTextField.setColumns(10);

this.add(volumeTextField,gridBagConstraints);


// 10.

JLabel issueLabel = new JLabel("ISSUE:");

gridBagConstraints.gridx = 9;

gridBagConstraints.gridy = 1;

this.add(issueLabel,gridBagConstraints);



JTextField issueTextField = new JTextField();

gridBagConstraints.gridx = 9;

gridBagConstraints.gridy = 2;

journalTitleTextField.setColumns(10);

this.add(issueTextField,gridBagConstraints);


// 11.

JLabel copyrightStatementLabel = new JLabel("COPYRIGHT STATEMENT:");

gridBagConstraints.gridx = 10;

gridBagConstraints.gridy = 1;

this.add(copyrightStatementLabel,gridBagConstraints);



JTextField copyrightStatementTextField = new JTextField();

gridBagConstraints.gridx = 10;

gridBagConstraints.gridy = 2;

journalTitleTextField.setColumns(10);

this.add(copyrightStatementTextField,gridBagConstraints);


// 12.

JLabel copyRightYearLabel = new JLabel("COPYRIGHT YEAR:");

gridBagConstraints.gridx = 11;

gridBagConstraints.gridy = 1;

this.add(copyRightYearLabel,gridBagConstraints);


JTextField copyRightYearTextField = new JTextField();

gridBagConstraints.gridx = 11;

gridBagConstraints.gridy = 2;

journalTitleTextField.setColumns(10);

this.add(copyRightYearTextField,gridBagConstraints);
*/
}

}

最佳答案

我在这里修改了你的程序以获得期望的结果,我还添加了两个方法来使你的代码更具可读性和效率:

public class InitialPanel extends JPanel {

private static final long serialVersionUID = -3159520372145273536L;

public InitialPanel() {
super();
initComponents();
}

private void initComponents() {

this.setLayout(new GridBagLayout());

GridBagConstraints gridBagConstraints = new GridBagConstraints();

// All mandatory fields.
// 1.
JLabel hwCodeLabel = addMyLabelCell(0, "HW CODE:");
JTextField hwCodeTextField = addMyTextFieldCell(0, "");

// 2.
JLabel publisherIdLabel = addMyLabelCell(1, "PUBLISHER ID:");
JTextField publisherIdTextField = addMyTextFieldCell(1, "");

// 3.
JLabel journalTitleLabel = addMyLabelCell(2, "JOURNAL TITLE:");
JTextField journalTitleTextField = addMyTextFieldCell(2, "");

// 4.
JLabel printISSNLabel = addMyLabelCell(3, "PRINT ISSN:");
JTextField printISSNTextField = addMyTextFieldCell(3, "");

// 5.
JLabel eISSNLabel = addMyLabelCell(4, "ELECTRONIC ISSN:");
JTextField eISSNTextField = addMyTextFieldCell(4, "");

// 6.
JLabel publisherNameLabel = addMyLabelCell(5, "PUBLISHER NAME:");
JTextField publisherNameTextField = addMyTextFieldCell(5, "");

// 7.
JLabel publisherLOCLabel = addMyLabelCell(6, "PUBLISHER LOCATION:");
JTextField publisherLOCTextField = addMyTextFieldCell(6, "");

// 8.
JLabel coverDateLabel = addMyLabelCell(7, "COVER DATE:");
JTextField coverDateTextField = addMyTextFieldCell(7, "");

// 9.
JLabel volumeLabel = addMyLabelCell(8, "VOLUME:");
JTextField volumeTextField = addMyTextFieldCell(8, "");

// 10.
JLabel issueLabel = addMyLabelCell(9, "ISSUE:");
JTextField issueTextField = addMyTextFieldCell(9, "");

// 11.
JLabel copyrightStatementLabel = addMyLabelCell(10, "COPYRIGHT STATEMENT:");
JTextField copyrightStatementTextField = addMyTextFieldCell(10, "");

// 12.
JLabel copyRightYearLabel = addMyLabelCell(11, "COPYRIGHT YEAR:");
JTextField copyRightYearTextField = addMyTextFieldCell(11, "");
}

public JLabel addMyLabelCell(int pos, String labelstr) {
GridBagConstraints gridBagConstraints = new GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = pos;
JLabel label = new JLabel(labelstr);
this.add(label, gridBagConstraints);
return label;
}

public JTextField addMyTextFieldCell(int pos, String text) {
GridBagConstraints gridBagConstraints = new GridBagConstraints();
gridBagConstraints.anchor = GridBagConstraints.EAST;
gridBagConstraints.ipadx = 10;
JTextField textField = new JTextField(text);
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = pos;
textField.setColumns(10);
this.add(textField, gridBagConstraints);
return textField;
}

public static void main(String... args) {
SwingUtilities.invokeLater(() -> {
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(new InitialPanel());
f.setSize(300, 300);
f.setVisible(true);
});
}
}

这是输出:

enter image description here

关于java - 了解 GridBagConstraints gridx 和 gridy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26472233/

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