package table;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
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.ListSelectionModel;
// 회원관리 프로그램 view 보여주기 담당
public class MemberView extends JFrame
implements ActionListener {
JTable table;
MemberModel model;
JScrollPane sp;
JPanel pa;
JLabel la1, la2, la3;
JTextField tf1, tf2, tf3;
JButton bt1, bt2, bt3; // 회원추가, 회원수정, 회원삭제
JDialog uDialog; // update용 다이얼로그
JLabel ud_title, ud_no, ud_name, ud_addr, ud_memberNo;
JTextField ud_tf1, ud_tf2;
JButton ud_bt1, ud_bt2;
JPanel ud_pa;
public MemberView() {
super("회원관리 프로그램 v0.1"); // JFrame("~~~");
model = new MemberModel();
table = new JTable(model);
sp = new JScrollPane(table);
pa = new JPanel(new GridLayout(3,3)); // FlowLayout -> GridLayout
la1 = new JLabel("회원번호");
la2 = new JLabel("이름");
la3 = new JLabel("주소");
tf1 = new JTextField("번호", 5);
tf2 = new JTextField("이름", 5);
tf3 = new JTextField("주소", 5);
bt1 = new JButton("회원추가");
bt2 = new JButton("회원수정");
bt3 = new JButton("회원삭제");
uDialog = new JDialog(this, "회원수정", true);
ud_title = new JLabel("회원수정", JLabel.CENTER);
ud_no = new JLabel("회원번호", JLabel.CENTER);
ud_name = new JLabel("회원이름", JLabel.CENTER);
ud_addr = new JLabel("회원주소", JLabel.CENTER);
// memberNo은 나중에 업데이트시 회원번호를 세팅
ud_memberNo = new JLabel("", JLabel.CENTER);
ud_tf1 = new JTextField(5);
ud_tf2 = new JTextField(5);
ud_bt1 = new JButton("OKAY");
ud_bt2 = new JButton("CANCEL");
ud_pa = new JPanel(new GridLayout(4, 2));
}
private void setup() {
la1.setHorizontalAlignment(JLabel.CENTER);
la2.setHorizontalAlignment(JLabel.CENTER);
la3.setHorizontalAlignment(JLabel.CENTER);
tf1.setEditable(false);
tf2.setEditable(false);
tf3.setEditable(false);
tf1.setBackground(Color.white);
tf2.setBackground(Color.white);
tf3.setBackground(Color.white);
bt1.addActionListener(this);
bt2.addActionListener(this);
bt3.addActionListener(this);
table.setSelectionMode
(ListSelectionModel.SINGLE_SELECTION);
}
private void setUDialog() {
uDialog.add(ud_title, "North");
ud_pa.add(ud_no);
ud_pa.add(ud_memberNo);
ud_pa.add(ud_name);
ud_pa.add(ud_tf1);
ud_pa.add(ud_addr);
ud_pa.add(ud_tf2);
ud_pa.add(ud_bt1);
ud_pa.add(ud_bt2);
uDialog.add(ud_pa, "Center");
uDialog.pack();
}
public void execute() {
setup();
setUDialog();
pa.add(la1);
pa.add(la2);
pa.add(la3);
pa.add(tf1);
pa.add(tf2);
pa.add(tf3);
pa.add(bt1);
pa.add(bt2);
pa.add(bt3);
add(sp, "Center");
add(pa, "South");
//pack(); 자동으로 컴포넌트 크기 계산 사이즈 지정
setSize(500, 300);
setLocation(200, 100);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
new MemberView().execute();
}
public void actionPerformed(ActionEvent e) {
Object o = e.getSource();
if(o == bt1) {
if(bt1.getText().equals("회원추가")) {
bt1.setText("완료");
tf2.setText("");
tf2.setEditable(true);
tf3.setText("");
tf3.setEditable(true);
bt2.setEnabled(false);
bt3.setEnabled(false);
} else {
// DB 회원 추가~~
// 이름 주소 넣은 MemberBean 객체 만들고
MemberBean bean = new MemberBean();
bean.setName(tf2.getText());
bean.setAddr(tf3.getText());
model.addMember(bean);
bt1.setText("회원추가");
tf2.setText("이름");
tf2.setEditable(false);
tf3.setText("주소");
tf3.setEditable(false);
bt2.setEnabled(true);
bt3.setEnabled(true);
model.init(); //model의 멤버변수 data를 갱신
table.invalidate(); // 갱신된 데이터를 화면에 다시 로딩
}
} //if(o == bt1) end
else if(o == bt2) {
uDialog.setVisible(true);
}
else if(o == bt3) {
//회원삭제
int row = table.getSelectedRow(); //선택된 행
// row에 해당하는 회원번호를 가져와야 한다.
int no = (Integer)model.getValueAt(row, 0); // 회원번호
// 삭제
model.delMember(no);
model.init(); //model의 멤버변수 data를 갱신
table.invalidate(); // 갱신된 데이터를 화면에 다시 로딩
validate(); // JFrame의 화면 갱신
}
}
}
'자바 기본 공부 > 스윙 기초' 카테고리의 다른 글
[Swing 실습 - 회원관리프로그램] MemberBean (0) | 2009.06.23 |
---|---|
[Swing 실습 - 회원관리 프로그램] MemberModel (0) | 2009.06.23 |
[Swing 기초] 스윙 기초 마무리 (0) | 2009.06.23 |
[Swing 기초] 스윙 기본 Component (0) | 2009.06.23 |
[Swing 기초] Java Swing [Applet] 기초 (0) | 2009.06.23 |