우리는 gui프로그램이을 하면 여러가지 component들을 사용해서 gui프로그래밍을 하게될것이다.
component들이 뭐냐하면 한국말로 번역을 하면 부품이라는 뜻이다.
각각의 gui요소들을 부품처럼 사용하여서 프로그래밍을 하므로 부품이라는 말은 정말 적절한 명칭이 아닐 수 없다.
위의 Component들은 swing에 존재하는 모든 컴포넌트들이다. 마음에 들지 않는 다면 만들어서 사용할 수 밖에 없다.
그러나 대체적으로 필요한건 다 있다고 볼 수 있다.
여기 있는 Component들에 대해서 다 설명해 주고 싶지만 사실 하나하나 하기에는 양이 좀 방대하다.
그렇기 때문에 하나하나에 대해서 사용하는 필드나 메서드에 대해서 자세히 알고 싶다면 여기를 참조하라.
영문이지만 읽기 힘들지는 않다.
간단 기본적인 몇개의 Label을 사용하는 예제를 보도록 하자.
JLabel
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class TestSwing {
public static void main(String[] args) {
JFrame fr = new JFrame("This 프레임");
JPanel pn = new JPanel();
JLabel lb = new JLabel("이것은 레이블 입니다.");
pn.add(lb);
fr.setContentPane(pn);
fr.setSize(300, 200);
fr.setVisible(true);
}
}
레이블이라는 것은 이름표라는 뜻으로 문자열을 출력해주는 component이다.
자주쓰이면서 간단한 component인데 일반적으로는 문자열을 수정하는 일은 불가능하다.
물론 프로그래밍적으로 수정하거나 변경하는건 가능하다.
JTextField
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class TestSwing {
public static void main(String[] args) {
JFrame fr = new JFrame("This 프레임");
JPanel pn = new JPanel();
JTextField tf = new JTextField("텍스트필드 입니다.");
pn.add(tf);
fr.setContentPane(pn);
fr.setSize(300, 200);
fr.setVisible(true);
}
}
우리가 예제로 계속 사용했던 텍스트필드이다.
이 컴포넌트는 레이블과는 다르게 문자열을 수정하거나 입력하는 것이 가능하다.
JComboBox
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class TestSwing {
public static void main(String[] args) {
JFrame fr = new JFrame("This 프레임");
JPanel pn = new JPanel();
JComboBox<String> cb = new JComboBox<>();
cb.addItem("jiharu");
cb.addItem("kukaro");
cb.addItem("ekekdld");
pn.add(cb);
fr.setContentPane(pn);
fr.setSize(300, 200);
fr.setVisible(true);
}
}
콤보박스는 드롭박스라고 부르는 방식이다. 원래 정식명칭은 콤보박스인데
사람들이 드롭박스라고 많이 불러서 요즘은 드롭박스라고 불리운다.
그냥 두면 이렇게 선택하는 화면이 나타난다.
누르면 아이템을 선택할 수 있다.
JButton
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class TestSwing {
public static void main(String[] args) {
JFrame fr = new JFrame("This 프레임");
JPanel pn = new JPanel();
JButton bt = new JButton("이것은 버튼 입니다.");
pn.add(bt);
fr.setContentPane(pn);
fr.setSize(300, 200);
fr.setVisible(true);
}
}
gui프로그래밍시 다른것은 안쓰는 경우도 많은데 버튼만큼은 굉장히 많이 쓰게된다.
위 코드는 버튼을 만드는 예제이다.
JCheckBox
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class TestSwing {
public static void main(String[] args) {
JFrame fr = new JFrame("This 프레임");
JPanel pn = new JPanel();
JCheckBox cb = new JCheckBox("이것은 체크박스 입니다.");
pn.add(cb);
fr.setContentPane(pn);
fr.setSize(300, 200);
fr.setVisible(true);
}
}
위 코드는 체크 박스를 사용하는 예제이다.
한번 눌러보자. 체크가 될 것이다.
JRadioButton
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
public class TestSwing {
public static void main(String[] args) {
JFrame fr = new JFrame("This 프레임");
JPanel pn = new JPanel();
JRadioButton rbMale = new JRadioButton("남자");
JRadioButton rbFemale = new JRadioButton("여자");
ButtonGroup bg = new ButtonGroup();
bg.add(rbMale);
bg.add(rbFemale);
pn.add(rbMale);
pn.add(rbFemale);
fr.setContentPane(pn);
fr.setSize(300, 200);
fr.setVisible(true);
}
}
라디오버튼은 체크버튼과 유사하다.
그러나 결정적인 차이가있는데 여러개를 선택할 수 없고 단 하나만 선택할 수 있다는 것이다.
예를 들어서 위 예저처럼 남자 여자같은 경우 둘중 하나만 선택해야한다.
둘다 선택할 수... 있지는 않을 테니까.
하나를 선택하면 다른쪽 선택이 해제된다.
코드가 살짝 더 긴데 버튼 그룹을 지정해줘야한다.
그 그룹내에서는 하나만 선택할 수 있게 되는 원리다.
여기 소개한것들 보다 더 많은 컴포넌트들이 존재하지만 다 설명하기에는 너무 길다.
필요한 컴포넌트들이 있다면 취사선택하자. 그리고 남들이 만든 컴포넌트들도 존재하므로 그것을 사용할 수도 있을 것이다.
'Programming > Java-Swing' 카테고리의 다른 글
[Swing-06]Event-Key (0) | 2017.10.24 |
---|---|
[Swing-05]Event-Action (0) | 2017.10.21 |
[Swing-04]Layout(배치관리자) (0) | 2017.10.20 |
[Swing-02]Swing 시작 (0) | 2017.10.18 |
[Swing-01]AWT (0) | 2017.10.18 |