오늘도 자바!!! 빠이팅~
목차
CheckBox Control RadioButton Control Choice & ComboBox Control List Control
다중 선택을 구현할 수 있다.
Constructor | Function |
Checkbox() | Blank checkbox 생성 |
Checkbox(String text) | Text 문자열의 checkbox 생성 |
Checkbox(String text, Boolean state) | Text 문자열을 가지며, state 값에 따라 선택 여부 결정 |
Checkbox(String text, Boolean state, CheckboxGroup group) | Text 문자열을 가지며, state 값에 따라 선택 여부를 결정. group으로 명시된 그룹의 check box를 생성 |
Method | Function |
setText(String text) | CheckBox의 Text 지정 |
String getText() | CheckBox의 Text 반환 |
setSelected(Boolean b) | CheckBox의 선택 여부 지정 |
Boolean isSelected() | CheckBox의 선택 여부 반환 (선택되어 있으면 True, 아니면 False) |
단일 선택 구현이 가능하다.
Method | Function |
setText(String text) | Radio Button의 Text 지정 |
String getText() | RadioButton의 Text 반환 |
setSelected(Boolean b) | Radio Button의 선택 여부 지정 |
Boolean isSelected() | Radio Button의 선택 여부 반환 (선택되어 있으면 True, 아니면 False) |
확인(OK) Button을 클릭하면 결제 방법과 회원 구분에서 선택한 내용을 TextArea에 추가하는 프로그램!
Source
pirvate void btnOKActionPerformed(java.awt.event.ActionEvent evt) {
String strData = "회원님은 "; // 문자열 변수 strData 선언
if (jRadioButton.isSelected()) { // RadioButton이 선택되어 있으면,
strData += "회원 자격으로";
} else {
strData += "비회원 자격으로";
}
if (jCheckBox1.isSelected()) {
strData += jCheckBox1.getText();
}
if (jCheckBox2.isSelected()) {
strData += jCheckBox2.getText();
}
if (jCheckBox3.isSelected()) {
strData += jCheckBox3.getText();
}
strData += " 결제 방법을 선택하였습니다. \n";
jTextArea1.setText(strData_;
strData = null;
}
Design
실행 결과
Drop-Down 리스트를 구현할 수 있고, addItem()
메서드를 사용하여 Drop-Down 항목을 추가할 수 있다.
Method | Function |
int getItemCount() | Item 수 반환 |
String getItemAt(int index) | Index에 해당하는 Item 반환 |
void addItem(Object obj) | obj를 ComboBox Item으로 추가 |
Object getSelectItem() | 선택된 Item 반환 |
int getSelectedIndex() | 선택된 Item의 Index를 반환 |
(1) ComboBox에서 직업을 선택하고, 확인(OK) 버튼을 클릭하면 선택한 직업을 TextArea에 표시하는 프로그램.
Source
private void btnOKActionPerformed(java.awt.event.ActionEvent evt) {
String strData = null;
strData = "회원의 직업은 " + jComboBox1.getSelectedItem().toString() + "입니다. \n";
jTextArea1.setText(strData);
}
Design
Item을 넣어준다.
실행 결과
(2) ComboBox에서 해당 직업을 선택하면, 선택한 직업을 바로 TextArea에 표시하는 프로그램.
Hint~ ItemStateChanged(ItemEvent evt)
Event Handler인 ItemStateChanged(ItemEvent evt)
란,,, 아이템 선택 시 발생하는 이벤트를 처리하는 핸들러이다.
Source
private void jComboBox1ItemStateChanged(java.awt.event.ItemEvent evt) {
String strData = null;
String strJob = jComboBox1.getSelectedItem().toString();
strData = "회원님의 직업은 " + strJob + "입니다. \n";
jTextArea1.setText(strData);
}
Design
이벤트 핸들러 설정!!
실행 결과
확인(OK) 버튼을 클릭하지 않아도 TextArea에 선택한 직업이 표시되는 것을 확인할 수 있다.
Drop-Down 리스트를 구현할 때 사용되고, addItem()
메서드를 사용하여 Drop-Down 항목을 추가할 수 있다.
Method | Function |
int countItems() | Choice Control의 아이템 수 반환 |
String getItem(int index) | Index에 해당하는 아이템 반환 |
String getSelectItem() | 선택된 아이템 반환 |
int getSelectedIndex() | 선택된 항목의 Index 반환 |
void select(int index) | index에 해당하는 아이템 반환 |
void select(String str) | str에 해당하는 아이템 선택 |
다중 아이템이 리스트에 나타나도록 구현하고 싶을 때 사용된다.
Constructor | Comment |
JList(); | 전달 인자가 없는 생성자 |
JList(Object[] listData); | 배열 형태의 데이터를 갖는 list 생성 |
JList(Vector listData); | 벡터를 갖는 list 생성 |
JList(ListModel dataModel); | 데이터 모델을 갖는 list 생성 |
Method | Functione |
getSize() | List의 아이템 수 반환 |
void setListData(Object[] listData) | Object 클래스로 List에 추가 |
void setListData(Vector listData) | Vector 클래스로 List에 추가 |
int getSelectrdIndex() | 선택된 아이템의 Index 반환 |
int[] getSelectedIndices() | 다중 선택 모드일 때, 선택된 아이템의 index를 배열 로 반환 |
int setSelectedIndex() | 선택된 아이템의 Index 지정 |
int[] setSelectedIndices() | 다중 선택 모드일 때, 선택된 아이템의 index 배열 지정 |
잠깐만... 예제 풀기 전에... Vector?... 알아보고 갑시다..... 그리고 Object 클래스 개념도 같이 리마인드 해 볼까용....
Vector
란 Collection 프레임워크의 일부이며, java.util
패키지에 소속되어 있다. ArrayList와 동일한 구조를 가지며, 배열의 크기가 자동으로 조절이 된다.
Vector
의 특징은, 항상 동기화되어 있고 Collection 프레임워크에 없는 메서드들을 사용 가능하다는 것이다. 하지만, 동기화라는 특징이 있기에 Thread가 아닌 환경에서는 거의 사용되지 않는다고 한다... 또, 항상 동기화되므로 Thread 환경에서의 안정성은 높지만, ArrayList와 비교하여 추가, 검색, 삭제의 성능은 떨어진다.
자! 이제 Vector
의 선언, 값 추가 및 제거 방법에 대해 알아보자.
Vector 선언하기
Vector myVC = new Vector(); // 타입 설정 X. Object로 사용.
Vector<VectorDemo> demo = new Vector<VectorDemo>(); // 타입 설정 O. VectorDemo 객체로 선언
Vector<Integer> i = new Vector<Integer>(); // int 타입으로 선언
Vector<Integer> i2 = new Vector<>(); // 타입 선언 생략
Vector<Integer> i3 = new Vector<Integer>(10); // 초기 용량 세팅
Vector<Integer> i4 = new Vector<Integer>(Arrays.asList(1, 2, 3, 4)); // 초기 값 세팅
Vector<String> s = new<String>(); // String 타입
Vector<Character> c = new Vector<Character>(); // Char 타입
Vector 값 추가하기
import java.util.Vector;
public class VectorDemo {
public state void main(String[] args) {
Vector V = new Vector();
V.add("Hello");
V.add("World");
V.add(1, "Damgom"); // Index 1 위치에 추가
V.add(null);
System.out.print(V);
}
}
실행 결과 : [Hello, Damgom, World, null]
Vector 값 제거하기
import java.util.Vector;
public class VectorDemo {
public state void main(String[] args) {
Vector V = new Vector();
V.add("Hello");
V.add("World");
V.add(1, "Damgom"); // 1번째 위치에 추가
V.add(null);
System.out.println(V);
}
V.remove(1); // Index 1의 값 제거
System.out.println(V);
V.removeAllElements(); // 모든 데이터 제거
System.out.println(V);
V.add("Sohee");
V.add("Damgom");
System.out.println(V);
V.clear(); // 모든 데이터 제거
System.out.println(V);
}
실행 결과 :
[Hello, Damgom, World, null]
[Hello, World, null]
[]
[Sohee, Damgom]
[]
단순하게! 모든 클래스는 Object 클래스의 자식 클래스이다. 즉, Object 클래스는 자바에서 최상위 클래스인 것이다. Object 클래스에는 다양한 메서드가 존재하는데, 어떤 클래스에서도 이 메서드를 호출할 수 있다. 그럼 Object 클래스의 대표 메서드 종류에 대해 알아보자.
학교 강의를 들으면서 자주 썼던 메서드를 데리고 와 보았다...
(1) equals()
메서드 : 두 객체가 동일한 객체라면 True, 다르다면 False를 리턴.
(2) toString()
메서드 : 객체의 문자 정보를 리턴. 즉, 객체를 문자열로 표현.
자세한 내용은 아래 사이트를 참고하면 된당.
Button Event Handler를 사용하여 List의 아이템을 추가, 삭제하는 기능을 구현한 프로그램.
Source
private void initComponents() {
// 해당 소스코드 이해를 위한 코드만 작성함.
lstCompany.setModel(new javax.swing.AbstractListModel<String>() {
String[] strings = { "NHN", "Daum", "Yahoo", "Google", " " };
public int getSize() { return strings.length; }
public String getElementAt(int i) { return strings[i]; }
});
jScrollPane1.setViewportView(lstCompany);
}
private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {
Vector myVC = new Vector(); // 새로운 아이템을 저장하기 위한 Vector 선언
int iListSize = 0; // List 사이즈 저장할 변수
iListSize = lstCompany.getModel().getSize(); // List 사이즈 반환
for (int idx = 0; idx < iListSize; idx++) {
myVC.addElement(lstCompany.getModel().getElementAt(idx)); // List의 아이템을 myVC에 추가
}
myVC.addElement(txtInput.getText()); txtInput(TextField)의 문자열을 myVC에 추가
lstCompany.setListData(myVC); // List의 데이터 지정.
txtInput.setText(null);
}
private void btnDelActionPerformed(java.awt.event.ActionEvent evt) {
Vector myVC = new Vector();
int iList_index = 0;
int iListSize = 0;
iListSize = lstCompany.getModel().getSize();
for (int idx = 0; idx < iListSize; idx++) {
myVC.addElement(lstCompany.getModel().getElementAt(idx));
}
iList_index = lstCompany.getSelectedIndex();
myVC.removeElementAt(iList_index);
lstCompany.setListData(myVC);
txtInput.setText(null);
}
Design
프로퍼티에서 모델 아이템 추가하기.
실행 결과
(1) run
(2) New Item에 아이템 입력 후, 추가(Add) 버튼 클릭
(3) NHN 아이템 선택 후, 삭제(Del) 버튼 클릭