- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 gridx 和 gridy 约束来创建如下所示的界面(忽略“下一步”按钮)。前两个 JLabel-JTextField 对工作正常,但我不确定我为其余 10 个字段设置了什么 gridx 和 gridy 值。
代码:
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);
});
}
}
这是输出:
关于java - 了解 GridBagConstraints gridx 和 gridy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26472233/
我想我应该把这个发布给其他可能遇到同样问题的人。我遇到过一种情况,我正在将数据加载到网格存储中,但每一行都显示相同的确切信息(并且存储中的数据不同)。事实证明,您必须在存储(在我的例子中是内存存储)中
我没有成功地显示我的 GridX。我目前在 firebug 中收到 4 个与 dojo.js 有关的错误,其中两个 Error: scriptError 一个 Error: multipleDefin
根据文档: https://github.com/oria/gridx/wiki/Create-the-Simplest-Gridx Never forget to call grid.startup
GridX 是否可以根据该行中的数据为给定的行设置类? 我想用特殊颜色显示添加或更改的行。该信息将作为特殊字段存储在对象中。 至于现在,我只发现了如何个性化单元格的渲染(使用装饰器,或覆盖setCel
我正在尝试创建一个程序化过滤器。我有一个 dijit.tree 和一个 dojo gridx 在 jsp 上使用相同的源。当用户单击树 Node 时,我想使用该 Node 作为过滤器并在 gridx
我有一个使用 Gridx 创建的网格,它将用于监视和管理条目。当用户单击表中的一行时,会弹出一个对话框,允许用户选择忽略或响应。单击任一选项时,我必须更新 SQL 数据库中的一个条目(从中提取此信息的
根据文档: https://github.com/oria/gridx/wiki/Create-the-Simplest-Gridx Never forget to call grid.startup
我正在使用 dojo 1.9 和 gridx。网格使用内存存储进行初始化。但是当数据发生变化时,我更新了商店,但我没有看到任何变化应用于网格。它没有 refresh()方法(如 dgrid)。但是,我
我正在使用 Dojo 1.9 和 GridX 1.2。我只是将 ComboBox 配置为网格中单元格的编辑器。 我在示例中发现了以下配置语法: editor: "dijit/form/Comb
我正在尝试在单击相关行时检索存储在 dojo.gridx 表中的数据值。只要第一次调用以下函数,它就可以正常工作,当使用新数据再次调用该函数时,这些数据会正确显示在屏幕上,但是当我单击任何行时,检索到
我能够将标题中的文本居中,使用这个: [colid="startstop"].gridxCell{ text-align: center; } 我认为这会使属于 startstop 列的所有行
我编写了一个简单的程序来从外部 JSON 文件获取数据并将其显示在 Dojo Gridx 中。但是,它不起作用。 Dojo 代码: require(["dojo/text!json_to_gridx/
我正在使用 Dojo 1.9 和 GridX 1.2。我想检测用户更改给定行(或单元格)的事件。然后将执行其他操作,例如一行将更改背景颜色并启用“保存”按钮。 我正在搜索示例和文档,但没有找到示例。如
是否 GridX 支持单元格中文本的 HTML 转义吗? 我未能从 dojox.grid.DataGrid 中找到类似 escapeHTMLInData 的属性。 GridX 是否有内置的 HTML
我正在使用 dojo.gridx 来显示我的值。有时用户可以创建一个新行。这样我就添加了一个新按钮,当点击 newRow 按钮时,将调用 onclick 方法。 在该方法中创建了新的行代码。我的代码如
我在制作的游戏中无法正确布置某些组件。我的 GUI 由带有 BorderLayout 的外部 JFrame 组成,在 BorderLayout 的东侧我有一个带有 GridBagLayout 的 JP
我使用带有 jsonrest 的 Gridx 作为存储和分页模块。过滤只能在客户端完成吗?目前它向 jsonrest 存储发送请求并查询服务器。 最佳答案 是的,可以做到,看这个: https://g
我正在尝试使用 gridx 和 gridy 约束来定位我的按钮。但它们不起作用!如果我更改 gridx 和 gridy 变量,什么也不会发生。如果我将 fill to GridBagConstrain
我正在尝试使用 gridx 和 gridy 约束来创建如下所示的界面(忽略“下一步”按钮)。前两个 JLabel-JTextField 对工作正常,但我不确定我为其余 10 个字段设置了什么 grid
我有 gridx/Grid ( http://oria.github.io/gridx/ ),我想在标题单元格中添加一些小部件,例如文本框、下拉菜单等。有没有办法将小部件放入标题单元格中? 最佳答案
我是一名优秀的程序员,十分优秀!