【发布时间】:2014-02-17 18:04:50
【问题描述】:
我刚开始自学 Java 的 JFrame 和 JSwing 的基础知识。这一切都很有趣和游戏。
我听说 GridBagLayout 是您想要使用 Java 制作 GUI 时需要掌握的布局,我也这样做了,所以我在尝试。
最近,我尝试为自己制作一个 GUI,并取得了一些不错的效果。但是我遇到了一个问题。
我的代码如下:
String inputText;
public welcomeFrame(String title) {
super(title);
Container c = getContentPane();
GridBagConstraints gc = new GridBagConstraints();
launchGUI.setMyDefaults(this, 800, 300);
setLayout(new GridBagLayout());
gc.weighty = 1;
gc.anchor = GridBagConstraints.NORTH;
gc.gridx = 0;
gc.gridy = 0;
c.add(intro1, gc);
gc.gridx = 0;
gc.gridy = 1;
c.add(intro2, gc);
gc.gridx = 0;
gc.gridy = 2;
c.add(intro3, gc);
gc.gridx = 0;
gc.gridy = 3;
c.add(intro4, gc);
gc.gridx = 0;
gc.gridy = 4;
c.add(intro5, gc);
gc.anchor = GridBagConstraints.SOUTH;
gc.gridx = 0;
gc.gridy = 5;
c.add(tweets, gc);
gc.gridx = 1;
gc.gridy = 5;
c.add(textFrame, gc);
textFrame.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
inputText = textFrame.getText();
dispose();
}
});
}
这给了我一个奇迹:
打赌你能发现我的问题吗?
为什么我的文本框一直在那边?
如何让它贴在我的“输入单词:”标签上?你知道吗,就在它的右边?
谢谢大家,请保持温柔,我只是盯着学习这些东西。
【问题讨论】:
-
尽快发布Minimal complete example 以获得更好的帮助
-
@Reimeus 好了,我的方法完整了。
-
虽然这仍然不是一个(最小的)完整示例
-
@Reimeus 是的,我想我可以删除一些
gc.gridx = 0;以方便起见,但它们确实帮助我保持头脑清醒。 -
"..是的,我想我可以删除.." 不。MCTaRE(最小完整测试和可读示例)需要更多 不是更少。请实际点击链接并阅读@Reimeus所指的代码形式。
标签: java swing jpanel gridbaglayout