【问题标题】:setting a position and size for buttons in java在java中设置按钮的位置和大小
【发布时间】:2021-02-26 06:07:03
【问题描述】:

我正在制作项目(元素周期表)并且在 Swing 和 GridBagLayout 方面遇到了一点问题,即当我想要获得更大的按钮时,没有任何改变,或者我得到的按钮占据了我的所有屏幕。为什么?我怎样才能让它稍微大一点?以及如何将按钮设置为不在中心? 我的代码(我正在使用 Swing 和 GridBagLayout):

    GridBagConstraints c = new GridBagConstraints();
    JButton H,He,Li,Be,B,C,N,O,F,Ne;
    public MyPanel() {
        setPreferredSize(new Dimension(500,500));
        setBackground(Color.GREEN);
        setLayout(new GridBagLayout());
        //Wodór
        H=new JButton("H");
        c.anchor=GridBagConstraints.FIRST_LINE_START;
        c.weightx=1;
        c.weighty=1;
        c.gridwidth=2;
        c.gridheight=2;
        c.gridx=0;
        c.gridy=0;
        add(H,c);
        //Hel
        He=new JButton("He");
        c.anchor=GridBagConstraints.FIRST_LINE_END;
        c.gridx=34;
        add(He,c);
        //Lit
        Li=new JButton("Li");
        c.weighty=0;
        c.gridx=0;
        c.gridy=2;
        add(Li,c);
        //Beryl
        Be=new JButton("Be");
        c.gridx=2;
        add(Be,c);
        //Bar
        B=new JButton("B");
        c.gridx=24;
        add(B,c);
        //Węgiel
        C=new JButton("C");
        c.gridx=26;
        add(C,c);
        //Azot
        N=new JButton("N");
        c.gridx=28;
        add(N,c);
        //Tlen
        O=new JButton("O");
        c.gridx=30;
        add(O,c);
        //Fluor
        F=new JButton("F");
        c.gridx=32;
        add(F,c);
        //Neon
        Ne=new JButton("Ne");
        c.gridx=34;
        add(Ne,c);
    }
}

【问题讨论】:

标签: java swing jbutton layout-manager gridbaglayout


【解决方案1】:

这是我从 DuckDuckGo 获得的元素周期表图片。

看表,我建议两个GridLayouts,一个用于元素,一个用于底部的两个系列。您必须使用 dummy JPanels 来填充元素 GridLayout 的空白部分。

我还建议您创建一个模型JPanel,而不是JButtons,以保存元素缩写、元素名称、原子序数和原子量。您将为每个元素创建模型 JPanel 的实例。

通过使用模型JPanels,您可以更轻松地为背景着色。

【讨论】:

  • 我很确定这些部分存在问题,我在其他人的帮助下布置了元素周期表。但是..该死的,如果我能通过搜索找到它! AFAIR 我们最终使用了GridBagLayout - 正如 OP 正在尝试的那样。
  • @Andrew Thompson:我相信你或我可以使用 GridBagLayout 创建元素周期表。对我来说,使用几个 GridLaayouts 看起来更容易。你和我都不知道 OP 需要生产什么。因为他的问题缺乏细节。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-07
  • 1970-01-01
  • 1970-01-01
  • 2011-05-10
  • 1970-01-01
相关资源
最近更新 更多