Spring library를 이용해서 간단한 Table을 만들기
import java.awt.BorderLayout; import java.awt.Container; import java.awt.Dimension; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.table.DefaultTableModel; public class awt_table { public static void main(String[] args) { JFrame frame = new JFrame("참가자 명단"); frame.setPreferredSize(new Dimension(300, 150)); frame.setLocation(500, 400); Container contentPane = frame.getContentPane(); String colNames[] = {"이름", "나이", "성별"}; //Data가 없는 Default Table을 만든다. column는 있기 때문에 아래와 같이 생성. DefaultTableModel model = new DefaultTableModel(colNames, 0); //spring table 생성 JTable table = new JTable(model); //scrollpanel을 추가 JScrollPane scrollpane = new JScrollPane(table); //table을 frame에 추가 contentPane.add(scrollpane, BorderLayout.CENTER); JPanel panel = new JPanel(); JTextField tfName = new JTextField(6); JTextField tfAge = new JTextField(3); JTextField tfSex = new JTextField(2); JButton btAdd = new JButton("Add"); JButton btDel = new JButton("Del"); //이벤트를 처리할 class 객체를 생성한다. AddAction adaction = new AddAction(table, tfName, tfAge, tfSex); RemoveAction rmaction = new RemoveAction(table); //이벤트 처리 객체를 연결한다. btAdd.addActionListener(adaction); btDel.addActionListener(rmaction); panel.add(new JLabel(colNames[0])); panel.add(tfName); panel.add(new JLabel(colNames[1])); panel.add(tfAge); panel.add(new JLabel(colNames[2])); panel.add(tfSex); panel.add(btAdd); panel.add(btDel); //table을 frame에 추가 contentPane.add(panel, BorderLayout.SOUTH); //프로그램 종료 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //frame이 화면에 딱 맞도록 처리 frame.pack(); //화면에 표시 frame.setVisible(true); } } |
- Add Button을 눌렀을 때 처리하는 이벤트 Class
table에 row를 추가한다.
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.table.DefaultTableModel; public class AddAction implements ActionListener { JTable table; JTextField tfName; JTextField tfAge; JTextField tfSex; //생성자에게 table과 기타 정보를 넘겨준다. public AddAction(JTable table, JTextField tfName, JTextField tfAge, JTextField tfSex) { this.table = table; this.tfName = tfName; this.tfAge = tfAge; this.tfSex = tfSex; } @Override public void actionPerformed(ActionEvent e) { String str[] = new String[3]; str[0] = tfName.getText(); str[1] = tfAge.getText(); str[2] = tfSex.getText(); //생성자로부터 받은 table 객체의 타입을 변경한다. DefaultTableModel model = (DefaultTableModel)table.getModel(); //table에 object를 추가한다. model.addRow(str); } } |
- Del Button을 눌렀을 때 처리하는 이벤트 Class
table의 row를 선택하고 del을 누르면 table에서 row가 삭제된다.
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; public class RemoveAction implements ActionListener { JTable table; //생성자에게 table과 기타 정보를 넘겨준다. public RemoveAction(JTable table) { this.table = table; } @Override public void actionPerformed(ActionEvent e) { int row = table.getSelectedRow(); if (row >= 0) { //생성자로부터 받은 table 객체의 타입을 변경한다. DefaultTableModel model = (DefaultTableModel)table.getModel(); //table에 object를 삭제한다. model.removeRow(row); } } } |
실행하면 아래와 같은 화면이 표시된다.
'Java' 카테고리의 다른 글
객체지향이란? 객체지향 설계원칙? (0) | 2012.12.03 |
---|---|
Java GUI - Image (0) | 2012.12.01 |
Java GUI - 간단한 메모장 만들기 (0) | 2012.12.01 |
Java GUI - Event (0) | 2012.12.01 |
JAVA GUI - Frame, Panel (0) | 2012.12.01 |