컴포넌트 위치 상대적으로 정하는거 알고 있었는데 까먹음
텍스트 필드를 라벨 아래에 붙히는방법 있던거 같은데 도움좀 주면 ㄳㄳ
이렇게 만들어야하는데
이따구로 나온다
package java_Report; import java.awt.BorderLayout; import java.awt.Color; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.Insets; import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; public class ReportPanel extends JFrame{
JPanel p1a1, p1a2; JLabel id, lbltxt, pass; JTextField txtid, txtpass; JCheckBox chk1, chk2; JButton ok;
public ReportPanel(String title, int w, int h) { setTitle(title); setSize(w, h); setLocationRelativeTo(this); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel p1 = new JPanel(new FlowLayout()); p1.setBorder(BorderFactory.createEmptyBorder(10,10,10,10)); add(p1);
p1a1 = new JPanel(); id = new JLabel("Type ID"); txtid = new JTextField(10); pass = new JLabel("Type Password"); txtpass = new JTextField(10); p1a1.setBackground(Color.yellow); p1.add(p1a1); p1a1.add(id); p1a1.add(txtid);
p1a1.add(pass); p1a1.add(txtpass);
p1a2 = new JPanel(); lbltxt = new JLabel("Please Check!!"); chk1 = new JCheckBox("C# CheckBox"); chk2 = new JCheckBox("C++ CheckBox"); p1a2.setBackground(Color.green); p1.add(p1a2); p1a2.add(lbltxt); p1a2.add(chk1); p1a2.add(chk2);
ok = new JButton("OK"); ok.setSize(10, 10); p1.add(ok);
setVisible(true); } public static void main(String[] args) { new ReportPanel("6week Report", 300, 300); } } |
css 배워
RelativeLayout 였나?