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);
}
}
}
|
실행하면 아래와 같은 화면이 표시된다.
LIST
'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 |