728x90


우리는 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

+ Recent posts