를 왼쪽으로합니다 실행할 때이 예에서자바의 GridBagLayout : 구성 요소 정렬 나는이 <code>GridBagLayout</code>를 사용하여 레이아웃이
public class Example extends JFrame {
public Example() {
Border outline = BorderFactory.createLineBorder(Color.black);
GridBagLayout gbl = new GridBagLayout();
GridBagConstraints gbc = new GridBagConstraints();
JPanel pane = new JPanel(gbl);
gbc.weighty = 1.0;
gbc.weightx = 1.0;
JLabel unitLbl = new JLabel("Unit");
unitLbl.setBorder(outline);
gbc.gridx = 0;
gbc.gridy = 0;
gbc.ipadx = 30;
gbc.ipady = 10;
gbl.setConstraints(unitLbl, gbc);
pane.add(unitLbl);
JLabel typeLbl = new JLabel("Type");
typeLbl.setBorder(outline);
gbc.gridx = 0;
gbc.gridy = 1;
gbc.ipadx = 30;
gbc.ipady = 10;
gbl.setConstraints(typeLbl, gbc);
pane.add(typeLbl);
JTextField unitField = new JTextField();
typeLbl.setBorder(outline);
gbc.gridx = 1;
gbc.gridy = 0;
gbc.ipadx = 30;
gbc.ipady = 10;
gbl.setConstraints(unitField, gbc);
pane.add(unitField);
String[] type = {"All", "Verb", "Noun", "Adjective"};
JComboBox<String> comboBox = new JComboBox<String>(type);
gbc.gridx = 1;
gbc.gridy = 1;
gbc.ipadx = 30;
gbc.ipady = 10;
gbl.setConstraints(comboBox, gbc);
pane.add(comboBox);
add(pane, BorderLayout.CENTER);
setSize(new Dimension(400, 300));
getContentPane().setBackground(Color.WHITE);
setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Example();
}
});
}
}
을, 그것은 모든 구성 요소가 프레임의 중앙에 보인다. 하지만 내가 원하는 것은 :
- 두
JLabel
(unitLbl
및typelbl
은) 사이의 작은 거리에 각각 두 개의JLabel
의 오른쪽에있을 것입니다 JTextField
및JComboBox
프레임 의 왼쪽에있을 것입니다.
- 또한 격자의 위치 (3,0)에
JButton
을 새로 추가하려고하지만이 위치의 높이는 두 개의JLabel
높이입니다. 즉,이 버튼 높이는 "두 줄"을 의미합니다.
이 목표를 달성하려면 어떻게해야합니까? 도와주세요.
감사합니다 :)
예제의 링크 이미지 (및 [SSCCE] (http : // sscce.org) 물론 –