swing—在java中设置按钮的位置和大小

gk7wooem  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(532)

我正在做一个项目(元素周期表),在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);
    }
}
jucafojl

jucafojl1#

这是我从duckduckgo那里得到的元素周期表的照片。

看看这张table,我建议两张 GridLayouts ,一个用于元素,另一个用于底部的两个系列。你得用假人 JPanels 填充元素的空白部分 GridLayout .
我还建议 JButtons ,则创建模型 JPanel 保存元素缩写、元素名称、原子序数和原子量。你应该创建一个模型的示例 JPanel 对于每个元素。
通过使用模型 JPanels ,您可以更轻松地为背景上色。

相关问题