자바에서 버튼의 위치와 크기 설정
Nov 14 2020
나는 프로젝트 (주기적 테이블)를 만들고 있고 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 GilbertLeBlanc Nov 14 2020 at 19:03
여기 DuckDuckGo에서 얻은 주기율표 사진이 있습니다.

표를 보면 두 개의 GridLayouts
, 하나는 요소에 대한 것이고 다른 하나는 하단에있는 두 개의 시리즈에 대한 것입니다. JPanels
요소의 빈 부분을 채우 려면 더미를 사용해야 합니다 GridLayout
.
대신에 요소 약어, 요소 이름, 원자 번호 및 원자 무게를 유지 JButtons
하는 모델 JPanel
을 만드는 것이 좋습니다 . JPanel
각 요소 에 대한 모델의 인스턴스를 만듭니다 .
모델을 사용하면 JPanels
배경을 더 쉽게 채색 할 수 있습니다.