* JCheckBox
package app2;
import java.awt.EventQueue;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.HashSet;
import java.util.Set;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
public class JComponent02_JCheckBox extends JFrame implements ItemListener {
private JPanel contentPane;
JCheckBox ch1;
JCheckBox ch2;
JCheckBox ch3;
JLabel lblResult;
Set<String> set;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
JComponent02_JCheckBox frame = new JComponent02_JCheckBox();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public JComponent02_JCheckBox() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
ch1 = new JCheckBox("야구");
ch1.setBounds(27, 30, 107, 23);
contentPane.add(ch1);
ch2 = new JCheckBox("축구");
ch2.setBounds(27, 98, 107, 23);
contentPane.add(ch2);
ch3 = new JCheckBox("농구");
ch3.setBounds(27, 167, 107, 23);
contentPane.add(ch3);
lblResult = new JLabel("Result");
lblResult.setBounds(27, 217, 234, 15);
contentPane.add(lblResult);
// 이벤트 설정
ch1.addItemListener(this);
ch2.addItemListener(this);
ch3.addItemListener(this);
set = new HashSet<>();
}
@Override
public void itemStateChanged(ItemEvent e) {
// TODO Auto-generated method stub
JCheckBox xxx = (JCheckBox)e.getSource();
System.out.println(xxx.getActionCommand()+"\t"+e.getStateChange());
String key = xxx.getActionCommand();
if(e.getStateChange() == ItemEvent.SELECTED) {
set.add(key);
} else {
set.remove(key);
}
lblResult.setText(set.toString());
}
}

* JRadioButton
package app2;
import java.awt.EventQueue;
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;
import javax.swing.border.EmptyBorder;
public class JComponent03_JRadioButton extends JFrame implements ActionListener {
private JPanel contentPane;
private final ButtonGroup buttonGroup = new ButtonGroup();
JRadioButton r1;
JRadioButton r2;
JRadioButton r3;
JLabel lblResult;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
JComponent03_JRadioButton frame = new JComponent03_JRadioButton();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public JComponent03_JRadioButton() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 360, 302);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
r1 = new JRadioButton("야구");
buttonGroup.add(r1);
r1.setBounds(18, 44, 113, 23);
contentPane.add(r1);
r2 = new JRadioButton("축구");
buttonGroup.add(r2);
r2.setBounds(18, 106, 113, 23);
contentPane.add(r2);
r3 = new JRadioButton("농구");
buttonGroup.add(r3);
r3.setBounds(18, 167, 113, 23);
contentPane.add(r3);
lblResult = new JLabel("Result");
lblResult.setBounds(18, 223, 212, 15);
contentPane.add(lblResult);
// 이벤트 설정
r1.addActionListener(this);
r2.addActionListener(this);
r3.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String key = e.getActionCommand();
JRadioButton xxx = (JRadioButton)e.getSource();
// System.out.println(key);
System.out.println(xxx.getText());
// lblResult.setText(key);
lblResult.setText(xxx.getText());
}
}

* JTextField
package app2;
import java.awt.EventQueue;
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;
import javax.swing.border.EmptyBorder;
public class JComponent04_JTextField extends JFrame {
private JPanel contentPane;
private JTextField tfDeptno;
private JTextField tfDname;
private JTextField tfLoc;
JButton btnSave;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
JComponent04_JTextField frame = new JComponent04_JTextField();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public JComponent04_JTextField() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 768, 461);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblNewLabel = new JLabel("부서번호");
lblNewLabel.setBounds(12, 94, 50, 15);
contentPane.add(lblNewLabel);
tfDeptno = new JTextField();
tfDeptno.setBounds(74, 91, 199, 21);
contentPane.add(tfDeptno);
tfDeptno.setColumns(10);
JLabel lblNewLabel_1 = new JLabel("부서명");
lblNewLabel_1.setBounds(12, 122, 50, 15);
contentPane.add(lblNewLabel_1);
tfDname = new JTextField();
tfDname.setColumns(10);
tfDname.setBounds(74, 119, 199, 21);
contentPane.add(tfDname);
JLabel lblNewLabel_2 = new JLabel("부서위치");
lblNewLabel_2.setBounds(12, 150, 50, 15);
contentPane.add(lblNewLabel_2);
tfLoc = new JTextField();
tfLoc.setColumns(10);
tfLoc.setBounds(74, 147, 199, 21);
contentPane.add(tfLoc);
btnSave = new JButton("저장");
btnSave.setBounds(12, 208, 91, 23);
contentPane.add(btnSave);
// button 이벤트처리
btnSave.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String deptno = tfDeptno.getText();
String dname = tfDname.getText();
String loc = tfLoc.getText();
System.out.println(deptno+"\t"+dname+"\t"+loc);
}
});// end button 이벤트처리
}
}

* JList
package app2;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class JComponent05_JList extends JFrame {
private JPanel contentPane;
JList jList;
// JList 에서 보여줄 데이터(모델)를 관리하는 클래스
// java.util.Vector 상속받는 모델 클래스
DefaultListModel<String> listModel;
private JButton btnNewButton;
private JButton btnNewButton_1;
private JTextField textField;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
JComponent05_JList frame = new JComponent05_JList();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public JComponent05_JList() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 768, 461);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
jList = new JList();
jList.setBounds(32, 36, 172, 198);
// contentPane.add(jList);
// Model 생성
listModel = new DefaultListModel<>();
listModel.addElement("홍길동1");
listModel.addElement("홍길동2");
listModel.addElement("홍길동3");
listModel.addElement("홍길동4");
listModel.addElement("홍길동5");
jList.setModel(listModel);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(233, 36, 172, 198);
contentPane.add(scrollPane);
// JScrollPane 에 JList 추가
scrollPane.setViewportView(jList);
btnNewButton = new JButton("저장");
btnNewButton.setBounds(50, 64, 91, 23);
contentPane.add(btnNewButton);
btnNewButton_1 = new JButton("삭제");
btnNewButton_1.setBounds(50, 122, 91, 23);
contentPane.add(btnNewButton_1);
textField = new JTextField();
textField.setBounds(45, 192, 154, 21);
contentPane.add(textField);
textField.setColumns(10);
// 저장
btnNewButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String name = textField.getText();
listModel.addElement(name);
}
});
// 삭제
btnNewButton_1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String name = textField.getText();
if(listModel.contains(name)) {
listModel.removeElement(name);
}
}
});
// 이벤트 처리
jList.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
// TODO Auto-generated method stub
JList<String> jList = (JList)e.getSource();
System.out.println(jList.getSelectedIndex()+"\t"+jList.getSelectedValue());
}
});
}
}

* JTable
package app2;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
public class JComponent06_JTable extends JFrame {
private JPanel contentPane;
private JTable table;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
JComponent06_JTable frame = new JComponent06_JTable();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public JComponent06_JTable() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(37, 52, 134, 164);
contentPane.add(scrollPane);
table = new JTable();
scrollPane.setViewportView(table);
// 데이터 추가
// Vector<String> v = new Vector<>();
String[] header = {"deptno", "danme", "loc"};
String[][] obj = {{"10","개발1","서울1"}, {"20","개발2","서울2"}, {"30","개발3","서울3"}};
DefaultTableModel dm = new DefaultTableModel(obj, header);
table.setModel(dm);
}
}

* JTable_event
package app2;
import java.awt.EventQueue;
import java.util.Arrays;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.border.EmptyBorder;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableModel;
public class JComponent06_JTable2_event extends JFrame {
private JPanel contentPane;
private JTable table;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
JComponent06_JTable2_event frame = new JComponent06_JTable2_event();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public JComponent06_JTable2_event() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(37, 52, 134, 164);
contentPane.add(scrollPane);
table = new JTable();
scrollPane.setViewportView(table);
// 데이터 추가
// Vector<String> v = new Vector<>();
String[] header = {"deptno", "danme", "loc"};
String[][] obj = {{"10","개발1","서울1"}, {"20","개발2","서울2"}, {"30","개발3","서울3"}};
DefaultTableModel dm = new DefaultTableModel(obj, header);
table.setModel(dm);
// 이벤트 처리
ListSelectionModel model = table.getSelectionModel();
model.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
// TODO Auto-generated method stub
ListSelectionModel lsm = (ListSelectionModel)e.getSource();
int selectedIndex = lsm.getMinSelectionIndex();
String [] v = obj[selectedIndex];
System.out.println(v[0] + "\t" + v[1] + "\t" + v[2]);
System.out.println(Arrays.toString(v));
}
});
}
}

'[study]이론정리 > JDBC' 카테고리의 다른 글
Swing(3) 이벤트처리 및 JDBC 연동 (0) | 2024.04.09 |
---|---|
Swing(2) 레이아웃 (0) | 2024.04.09 |
Swing(1) 기본설명 및 프로젝트 생성 (0) | 2024.04.09 |
MyBatis(4) 아키텍쳐 (0) | 2024.04.05 |
MyBatis(3) 동적sql 처리 (0) | 2024.04.05 |