【问题标题】:GridBagLayout and placementsGridBagLayout 和展示位置
【发布时间】: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


【解决方案1】:

如果我正确理解您的问题,最简单的解决方案是将 JLabel 和 JTextField 添加到新的 JPanel 并将其添加到整体布局中。

例如:

gc.gridx = 0;
gc.gridy = 5;

JPanel panel = new JPanel();
panel.add(tweets);
panel.add(textFrame);

c.add(panel, gc);

您也可以尝试调整前几行的网格宽度:

gc.gridwidth = 2;//before adding the intros
...
gc.gridwidth = 1;//right after the last intro

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-02
    • 1970-01-01
    • 2012-10-11
    • 2015-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-29
    相关资源
    最近更新 更多