我正在做一个项目(元素周期表),在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);
}
}
1条答案
按热度按时间jucafojl1#
这是我从duckduckgo那里得到的元素周期表的照片。
看看这张table,我建议两张
GridLayouts
,一个用于元素,另一个用于底部的两个系列。你得用假人JPanels
填充元素的空白部分GridLayout
.我还建议
JButtons
,则创建模型JPanel
保存元素缩写、元素名称、原子序数和原子量。你应该创建一个模型的示例JPanel
对于每个元素。通过使用模型
JPanels
,您可以更轻松地为背景上色。