728x90
2020년 12월 07일 9시 ~ 15시 30분 zoom으로 수업 진행
package com.test03.container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class B_TextFiledTest {
public static void main(String[] args) {
JFrame mf = new JFrame();
mf.setSize(300, 130);
//패널 생성
JPanel panel = new JPanel();
//라벨 추가
panel.add(new JLabel("숫자 입력 : "));
//텍스트필드 추가
JTextField text = new JTextField(15);
panel.add(text);
//결과 영역
panel.add(new JLabel("제곱한 값"));
JTextField result = new JTextField(15);
result.setEditable(false);//수정할수 없게 함
panel.add(result);
//버튼 생성
JButton btn = new JButton("ok");
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
//클릭 시 텍스트 상자의 값을 가져와 계산 후 result에 처리
int num = Integer.parseInt(text.getText());
result.setText(num * num + "");
} catch (NumberFormatException e2) {
System.out.println("숫자만 입력해주세요");
}
//text필드로 포커스 가져가기
text.requestFocus();
}
});
panel.add(btn);
//프레임에 패널 부착
mf.add(panel);
mf.setVisible(true);
mf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
package com.test03.container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class C_TextArea {
public static void main(String[] args) {
JFrame mf = new JFrame();
//입력용 텍스트 필드
JTextField tf = new JTextField(30);
//출력용 텍스트 에어리어
JTextArea ta = new JTextArea(10, 30);
tf.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//해당 컴포넌트에서 발생된 이벤트를 알아서 감지해서
//이벤트가 발생했을 경우 해당 메소드안의 내용이 실행된다
String text = tf.getText();
ta.append(text + "\n");
tf.setText("");
tf.requestFocus();
}
});
mf.add(tf, "North");
mf.add(ta, "Center");
//컨테이너 크기를 구성요소들의 크기로 설정
mf.pack();
mf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mf.setVisible(true);
}
}
package com.test03.container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
public class D_RadioButtonTest {
public static void main(String[] args) {
JFrame mf = new JFrame("라디오 버튼 테스트");
mf.setSize(300, 150);
JPanel topPanel = new JPanel();
JLabel lbl = new JLabel("어떤 크기의 커피를 주문하시겠습니까? ");
topPanel.add(lbl);
mf.add(topPanel, "North");
JPanel sizePanel = new JPanel();
JRadioButton small = new JRadioButton("small size");
JRadioButton medium = new JRadioButton("medium size");
JRadioButton large = new JRadioButton("large size");
//버튼 그룹으로 라디오 버튼을 그룹화 시켜주지 않으면
//라디오버튼을 복수로 사용하게 된다
//여러 개의 라디오 버튼 중 하나만 사용하게 하고 싶다면 버튼그룹을 사용하자
ButtonGroup size = new ButtonGroup();
//라디오버튼 그룹화
size.add(small);
size.add(medium);
size.add(large);
//그룹화시킨 라디오 버튼들을 패널에 배치
sizePanel.add(small);
sizePanel.add(medium);
sizePanel.add(large);
//라디오버튼이 배치된 패널을 프레임에 부착
mf.add(sizePanel, "Center");
JPanel resultPanel = new JPanel();
JLabel text = new JLabel("크기가 선택되지 않았습니다.");
resultPanel.add(text);
mf.add(resultPanel, "South");
small.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
text.setText("Small Size가 선택되었습니다.");
}
});
medium.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
text.setText("Medium Size가 선택되었습니다.");
}
});
large.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
text.setText("Large Size가 선택되었습니다.");
}
});
mf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mf.setVisible(true);
}
}
package com.test03.container;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class E_CheckBoxTest {
public static void main(String[] args) {
JFrame mf = new JFrame("체크박스 테스트");
mf.setSize(300,200);
String[] animals = {"cat", "dog", "tiger"};
//콤보박스 생성
JComboBox animalList = new JComboBox(animals);
//처음 선택되어있는 값 지정
animalList.setSelectedIndex(1);
JLabel lbl = new JLabel("");
animalList.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//어떤 메뉴를 선택ㄷ했는지 요소를 가져온다
JComboBox cb = (JComboBox)(e.getSource());
//선택된 메뉴의 텍스트를 가지고온다.
String name = cb.getSelectedItem().toString();
//getSelectedItem의 반환형이 Object형이라 String 형변환
//선택된 이름에 해당하는 사진을 띄워준다.
Image img = new ImageIcon("images/" + name + ".PNG").getImage().getScaledInstance(150, 150, 0);
lbl.setIcon(new ImageIcon(img));
}
});
lbl.setHorizontalAlignment(JLabel.CENTER);
mf.add(animalList, "North");
mf.add(lbl, "South");
mf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mf.setVisible(true);
}
}
package com.test03.container;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class F_ComboBoxTest {
public static void main(String[] args) {
JFrame mf = new JFrame("콤보박스 테스트");
String[] fruits = {"apple", "orange", "banana"};
JCheckBox[] buttons = new JCheckBox[3];
for(int i=0; i<buttons.length; ++i) {
buttons[i] = new JCheckBox(fruits[i]);
}
//여러개의 체크박스를 반복문을 사용해 부착
JPanel checkPanel = new JPanel();
for(int i=0; i<buttons.length; ++i) {
checkPanel.add(buttons[i]);
}
JPanel resultPanel = new JPanel();
JLabel text = new JLabel("선택한 과일이 없습니다.");
resultPanel.add(text);
mf.add(checkPanel, "North");
mf.add(resultPanel, "Center");
//North에 두 줄로 패널을 놓고싶다면
//패널 하나에 -> 다른 패널 2개를 넣고,,, 패널 2개가 포함되오있는 패널을 프레임에 부착시켜준다
//이벤트 연결
for(int i=0; i<buttons.length; ++i) {
buttons[i].addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
//아이템의 상태가 변경된 것을 감지할 때 이벤트 처리
String result = "";
int cnt=0;
//체크되어있는 체크박스를 확인
for(int i=0; i<buttons.length; ++i) {
if(buttons[i].isSelected()) {
result += buttons[i].getText() + " ";
cnt++;
}
text.setText(result);
}
if(cnt == 0) {
//선택된게 없을 경우
text.setText("선택된 과일이 없습니다.");
}
}
});
}
mf.pack();
mf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mf.setVisible(true);
}
}
package com.test03.container;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class G_ListTest {
public static void main(String[] args) {
JFrame mf = new JFrame("리스트 테스트");
mf.setSize(300, 200);
JPanel listPanel = new JPanel();
JPanel panel = new JPanel();
String[] cities = {"서울", "대전", "대구", "부산", "경기", "전주", "광주", "제주"};
JList list = new JList(cities);
//리스트에 스크롤바 추가
JScrollPane scroller = new JScrollPane(list);
scroller.setPreferredSize(new Dimension(200, 50));
//리스트의 선택 모드를 단일 선택 모드로 변경
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
JLabel lbl = new JLabel("선택된 항목");
JTextField selected = new JTextField(10);
selected.setEditable(false);
list.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
selected.setText((list.getSelectedValue().toString()));
//리스트에서 아이템이 선택될 경우 이벤트 발생 -> 선택된 리스트의 텍스트 값을 얻어와 selected라는 텍스트필스에 값을 지정
}
});
panel.add(lbl);
panel.add(selected);
listPanel.add(scroller);
mf.add(listPanel, "North");
mf.add(panel, "Center");
mf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mf.setVisible(true);
}
}
package com.test03.container;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSlider;
public class H_SliderTest {
public static void main(String[] args) {
JFrame mf = new JFrame("슬라이더 테스트");
mf.setSize(300, 300);
JPanel panel = new JPanel();
JLabel lbl = new JLabel("슬라이더를 움직여보세요", JLabel.CENTER);// -> 라벨의 위치 y값을 중앙으로
lbl.setAlignmentX(Component.CENTER_ALIGNMENT);//라벨의 위치 x값을 중앙으로
panel.add(lbl);
JPanel panel2 = new JPanel();
JSlider slider = new JSlider(0, 30, 15);//최소값, 최대값, 시작 시 기본값
slider.setMajorTickSpacing(10);//큰 눈금 간격
slider.setMinorTickSpacing(1); //작은 눈금 간격
slider.setPaintTicks(true); //슬라이더에 눈금 표시 슬라이더에 눈금이 생겼다!
slider.setPaintLabels(true); //눈금 밑에 숫자가 생겼다 (큰 눈금의 값을 표기)
panel2.add(slider);
JButton btn = new JButton("전송");
panel2.add(btn);
JPanel resultPanel = new JPanel();
JLabel text = new JLabel("결과 값 : ");
resultPanel.add(text);
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
text.setText(slider.getValue() + "");
}
});
mf.add(panel, "North");
mf.add(panel2, "Center");
mf.add(resultPanel, "South");
mf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mf.setVisible(true);
}
}
package com.test03.container;
import java.awt.Dialog;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class I_DialogTest {
public static void main(String[] args) {
JFrame mf = new JFrame("다이얼로그 테스트");
JPanel panel = new JPanel();
JButton btn = new JButton("Simple Dialog");
// 다이얼로그 설정
Dialog sd = new Dialog(mf, "Simple Dialog");
sd.setBounds(150, 250, 150, 150);
sd.add(new JLabel("simple Dialog test"), "North");
JButton btn2 = new JButton("close");
sd.add(btn2, "Center");
JButton btn3 = new JButton("Input Dialog");
panel.add(btn3);
// 심플 다이얼로그 보여지게
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
sd.setVisible(true);
}
});
// close 누르면 다이얼로그 닫기
btn2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
sd.dispose();
}
});
btn3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String result = JOptionPane.showInputDialog("내용을 입력하세요");
System.out.println(result);
}
});
panel.add(btn);
mf.add(panel);
mf.pack();
mf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mf.setVisible(true);
}
}
'기록 > 자바_국비' 카테고리의 다른 글
[배운내용정리] 1210 자바 국비교육 _ Oracle 시작 (0) | 2020.12.20 |
---|---|
[배운내용정리] 1209 자바 국비교육 (0) | 2020.12.20 |
[배운내용정리] 1204 자바 국비교육 (0) | 2020.12.12 |
[배운내용정리] 1203 자바 국비교육 (0) | 2020.12.10 |
[배운내용정리] 1202 자바 국비교육 (2) | 2020.12.10 |