我正在尝试制作 3 列布局,在每一列中我希望能够绝对定位标签和文本框。
问题是我的标签 (jLabel2) 甚至从未显示..
这是我的代码:
/**
* Top JPanel (Top)
*/
JPanel pnlTop = new JPanel();
pnlTop.setBackground(new java.awt.Color(223, 223, 217));
pnlTop.setBorder(BorderFactory.createMatteBorder(0, 0, 1, 0, new java.awt.Color(173, 173, 166)));
c.gridx = 0;
c.gridy = 0;
c.gridwidth = 5; // five rows
c.gridheight = 1; // one column
c.fill = GridBagConstraints.BOTH;
//c.weighty = 0.04;
add(pnlTop, c);
/**
* Top JPanel Content (Here is where i want to put absolute content)
*/
JPanel pnlTopContent = new JPanel();
pnlTopContent.setLayout(null);
jLabel2.setFont(new java.awt.Font("Lucida Grande", 1, 16)); // NOI18N
jLabel2.setText("Hello");
jLabel2.setLocation(150, 50);
pnlTopContent.add(jLabel2);
pnlTop.add(pnlTopContent);
知道我做错了什么吗?
最佳答案
Then its showing but not in the right place
“正确的地方”对您来说意味着什么?为什么你还要将标签添加到第二个面板上?为什么不直接将标签添加到 pnlTopContent 中?
GridBagLayout 有一个约束,允许您将组件定位在列的右/左/中心。阅读 Swing 教程中关于 How to Use GridBagLayout 的部分。您可能想从anchor
约束开始。
关于Java GridBagLayout + 绝对布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17789794/