자바(java)로 만들어진 인사관리프로그램을 db(mysql)연동하는것좀 알려주...
-
게시물 수정 , 삭제는 로그인 필요
안녕하세요.. 제가 자바공부를 하다가 인사관리프로그램 소스를 받았는데
mysql로 db연동하는거랑 ID중복체크 , 주민번호체크 , 프린트기능, 우편번호 나오게하는거좀 알려주세요 ㅠㅠ
적지만 가지고있는 내공 전부 드리겠습니다
***********BuSet.java**************
/*
// header - edit "Data/yourJavaHeader" to customize
// contents - edit "EventHandlers/Java file/onCreate" to customize
//
*/
/*
// header - edit "Data/yourJavaHeader" to customize
// contents - edit "EventHandlers/Java file/onCreate" to customize
//
*/
import java.util.*;
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;
import javax.swing.table.*;
import javax.swing.tree.*;
import java.io.*;
import java.util.*;
class BuSet implements Serializable{
private String buname;
private int bunum;
public BuSet(String str, int i){
buname = str;
bunum = i;
}
public String getBuname(){
return buname;
}
public int getBunum(){
return bunum;
}
public void setBuname(String str){
buname = str;
}
public void setBunum(int i){
bunum = i;
}
}
class Person implements Serializable{
String name;
String jumin;
String id;
String pass;
String tel;
String tel1;
String addr;
String buname;
String jik;
String work;
public Person(String a, String b, String c, String d, String e, String f, String g, String h, String i, String j){
name = a; jumin = b; id = c; pass = d; tel = e; tel1 = f; addr = g; buname = h; jik = i; work = j;
}
}
class Exam_03_Sub extends JFrame implements ActionListener, FocusListener, ChangeListener{
private JRootPane jrp;
private Container con;
//전체 화면의 North
private JLabel jl = new JLabel("<인사 관리>", JLabel.CENTER);
//전체 화면의 Center
private JSplitPane jsp = new JSplitPane();
//전체 화면의 South
private JPanel jp = new JPanel(new GridLayout(2, 1));
private JPanel jp1 = new JPanel(new BorderLayout());
private JPanel jp2 = new JPanel(new GridLayout(1, 2));
private JPanel jp3 = new JPanel(new GridLayout(1, 2));
private JPanel jp4 = new JPanel(new GridLayout(1, 2));
private JLabel jlb = new JLabel("부서명 : ", JLabel.RIGHT);
private JTextField jtf = new JTextField();
private JButton jbt1 = new JButton("부서추가");
private JButton jbt2 = new JButton("파일로저장");
private JButton jbt3 = new JButton("불러오기");
private JButton jbt4 = new JButton("종료");
//Center의 West
private JPanel jpjp0 = new JPanel(new BorderLayout());
private JLabel jljl = new JLabel("등록인원", JLabel.CENTER);
//private JTree tree = new JTree();
//private JScrollPane treejsp = new JScrollPane(tree);
//Center의 Center
private JTabbedPane jtb = new JTabbedPane();
private JPanel jpjp = new JPanel(new BorderLayout());
private JPanel jpjp1 = new JPanel(new BorderLayout());
private JPanel jpjp2 = new JPanel(new BorderLayout());
private JPanel jpjp3 = new JPanel(new BorderLayout());
//사용자 등록...
private JLabel namelb = new JLabel("이름 : ", JLabel.RIGHT);
private JLabel juminlb = new JLabel("주민번호 : ", JLabel.RIGHT);
private JLabel idlb = new JLabel("ID : ", JLabel.RIGHT);
private JLabel passlb = new JLabel("비밀번호 : ", JLabel.RIGHT);
private JLabel pass1lb = new JLabel("비밀번호 확인 : ", JLabel.RIGHT);
private JLabel tellb = new JLabel("전화번호 : ", JLabel.RIGHT);
private JLabel tel1lb = new JLabel("휴대폰 : ", JLabel.RIGHT);
private JLabel addrlb = new JLabel("주소 : ", JLabel.RIGHT);
private JLabel bulb = new JLabel("부서 : ", JLabel.RIGHT);
private JLabel jiklb = new JLabel("직책 : ", JLabel.RIGHT);
private JLabel worklb = new JLabel("업무내용 작성 : ", JLabel.RIGHT);
private JButton regbt = new JButton("등록");
private JButton clearbt = new JButton("Clear");
private JTextField nametf = new JTextField();
private JTextField jumintf = new JTextField();
private JTextField jumin1tf = new JTextField();
private JButton juminbt = new JButton("확인");
private JTextField idtf = new JTextField();
private JButton idbt = new JButton("중복확인");
private JPasswordField passtf = new JPasswordField();
private JPasswordField pass1tf = new JPasswordField();
private Vector telvc = new Vector();
private JComboBox teltf = new JComboBox(telvc);
private JTextField tel1tf = new JTextField();
private JTextField tel2tf = new JTextField();
private Vector tel1vc = new Vector();
private JComboBox tel11tf = new JComboBox(tel1vc);
private JTextField tel12tf = new JTextField();
private JTextField tel13tf = new JTextField();
private JTextField addrtf = new JTextField();
private Vector buvc = new Vector();
private JComboBox butf = new JComboBox(buvc);
private Vector jikvc = new Vector();
private JComboBox jiktf = new JComboBox(jikvc);
private JTextArea worktf = new JTextArea(5, 20);
private JScrollPane workjsp = new JScrollPane(worktf);
//정보수정...
private JLabel namelb1 = new JLabel("이름 : ", JLabel.RIGHT);
private JLabel juminlb1 = new JLabel("주민번호 : ", JLabel.RIGHT);
private JLabel idlb1 = new JLabel("ID : ", JLabel.RIGHT);
private JLabel passlb1 = new JLabel("비밀번호 : ", JLabel.RIGHT);
private JLabel pass1lb1 = new JLabel("비밀번호 확인 : ", JLabel.RIGHT);
private JLabel tellb1 = new JLabel("전화번호 : ", JLabel.RIGHT);
private JLabel tel1lb1 = new JLabel("휴대폰 : ", JLabel.RIGHT);
private JLabel addrlb1 = new JLabel("주소 : ", JLabel.RIGHT);
private JLabel bulb1 = new JLabel("부서 : ", JLabel.RIGHT);
private JLabel jiklb1 = new JLabel("직책 : ", JLabel.RIGHT);
private JLabel worklb1 = new JLabel("업무내용 작성 : ", JLabel.RIGHT);
private JButton regbt1 = new JButton("수정");
private JButton clearbt1 = new JButton("Clear");
private JLabel nametf1 = new JLabel("Guest");
private JLabel jumintf1 = new JLabel("******-*******");
//private JTextField jumin1tf1 = new JTextField();
//private JButton juminbt1 = new JButton("확인");
private JLabel idtf1 = new JLabel("Guest");
//private JButton idbt1 = new JButton("중복확인");
private JPasswordField passtf1 = new JPasswordField("*****************************");
private JPasswordField pass1tf1 = new JPasswordField("*****************************");
private Vector telvc1 = new Vector();
private JComboBox teltf1 = new JComboBox(telvc1);
private JTextField tel1tf1 = new JTextField();
private JTextField tel2tf1 = new JTextField();
private Vector tel1vc1 = new Vector();
private JComboBox tel11tf1 = new JComboBox(tel1vc1);
private JTextField tel12tf1 = new JTextField();
private JTextField tel13tf1 = new JTextField();
private JTextField addrtf1 = new JTextField();
private Vector buvc1 = new Vector();
private JComboBox butf1 = new JComboBox(buvc1);
private Vector jikvc1 = new Vector();
private JComboBox jiktf1 = new JComboBox(jikvc1);
private JTextArea worktf1 = new JTextArea(5, 20);
private JScrollPane workjsp1 = new JScrollPane(worktf1);
//검색...
private ButtonGroup bg = new ButtonGroup();
private JRadioButton namerb = new JRadioButton("이름으로 검색", true);
private JRadioButton juminrb = new JRadioButton("주민번호로 검색");
private JRadioButton telrb = new JRadioButton("전화번호으로 검색");
private JRadioButton tel1rb = new JRadioButton("휴대폰으로 검색");
private JRadioButton idrb = new JRadioButton("ID로 검색");
private JLabel searchlb = new JLabel("검색 필드 : ", JLabel.RIGHT);
private JTextField searchtf = new JTextField();
private JButton searchbt = new JButton("검색");
private JLabel viewlb = new JLabel("결과 표시 : ", JLabel.RIGHT);
private Vector viewvc = new Vector();
private JList viewli = new JList(viewvc);
private JScrollPane viewjsp = new JScrollPane(viewli);
private JButton changebt = new JButton("해당 사용자 정보 변경 및 상세보기");
//삭제...
private JLabel dellb = new JLabel("삭제할 대상을 체크하시오.");
private JButton delbt = new JButton("체크된 사용자 삭제");
private JButton delclearbt = new JButton("Check Clear");
private String[] headername = {"번호", "삭제", "ID", "이름", "주민번호", "전화번호", "휴대폰번호", "주소", "부서", "직위", "업무내용"};
private DefaultTableModel dtm = new DefaultTableModel(headername, 10);
private DefaultTableColumnModel dtcm = new DefaultTableColumnModel();
private DefaultListSelectionModel dlsm = new DefaultListSelectionModel();
private JTable jt = new JTable(dtm, dtcm, dlsm);
private JScrollPane tablejsp = new JScrollPane(jt);
private TableColumn[] tc = new TableColumn[11];
private DefaultTableCellRenderer[] dtcr = new DefaultTableCellRenderer[11];
private DefaultCellEditor[] dce = new DefaultCellEditor[11];
private JTableHeader jth = new JTableHeader(dtcm);
//tree 구성 멤버...
private DefaultMutableTreeNode root = new DefaultMutableTreeNode("(주)주식회사");
private DefaultTreeModel treemodel = new DefaultTreeModel(root);
private JTree tree = new JTree(treemodel);
private JScrollPane treejsp = new JScrollPane(tree);
//부서 셋팅 관련 멤버...
private static int busetnum = 0;
private Vector busetvc = new Vector();
//사용자 저장 멤버...
private Vector personvc = new Vector();
//파일의 저장...
private JFileChooser jfc = new JFileChooser();
public Exam_03_Sub(String str){
super(str);
this.init();
this.start();
this.setSize(600, 500);
Dimension di = Toolkit.getDefaultToolkit().getScreenSize();
Dimension di1 = this.getSize();
this.setLocation((int)(di.getWidth() / 2 - di1.getWidth() / 2), (int)(di.getHeight() / 2 - di1.getHeight() / 2));
this.setVisible(true);
}
public void init(){
jrp = this.getRootPane();
con = jrp.getContentPane();
con.setLayout(new BorderLayout(5, 5));
jl.setFont(new Font("휴먼옛체", Font.BOLD, 20));
//전체의 North
con.add("North", jl);
//전체의 Center
jpjp0.add("North", jljl);
jpjp0.add("Center", treejsp);
jpjp0.setBorder(new BevelBorder(BevelBorder.RAISED));
jsp.setLeftComponent(jpjp0);
this.initjpjp();
this.initjpjp1();
this.initjpjp2();
this.initjpjp3();
jtb.addTab("사용자등록", jpjp);
jtb.addTab("검색", jpjp1);
jtb.addTab("삭제", jpjp2);
jtb.addTab("정보수정", jpjp3);
jsp.setRightComponent(jtb);
jsp.setOneTouchExpandable(true);
jsp.setDividerSize(20);
jsp.setDividerLocation(120);
con.add("Center", jsp);
//전체의 South
jp1.add("West", jlb);
jp1.add("Center", jtf);
jp1.add("East", jbt1);
jp.add(jp1);
jp3.add(jbt2);
jp3.add(jbt3);
jp2.add(jp3);
jp4.add(new JLabel());
jp4.add(jbt4);
jp2.add(jp4);
jp.add(jp2);
con.add("South", jp);
jtb.setEnabledAt(3, false);
}
private void initjpjp(){
JPanel p = new JPanel(new GridLayout(10, 1));
JPanel p1 = new JPanel(new GridLayout(10, 1));
JPanel p2 = new JPanel(new BorderLayout(0, 10));
p.add(namelb);
p.add(juminlb);
p.add(idlb);
p.add(passlb);
p.add(pass1lb);
p.add(tellb);
p.add(tel1lb);
p.add(addrlb);
p.add(bulb);
p.add(jiklb);
jpjp.add("West", p);
p1.add(nametf);
JPanel p4 = new JPanel(new BorderLayout(10, 0));
JPanel p5 = new JPanel(new GridLayout(1, 2, 5, 0));
p5.add(jumintf);
p5.add(jumin1tf);
p4.add("Center", p5);
p4.add("East", juminbt);
p1.add(p4);
JPanel p6 = new JPanel(new BorderLayout(10, 0));
p6.add("Center", idtf);
p6.add("East", idbt);
p1.add(p6);
p1.add(passtf);
p1.add(pass1tf);
JPanel p7 = new JPanel(new BorderLayout(5, 0));
telvc.addElement("02 ");
telvc.addElement("053 ");
telvc.addElement("061 ");
p7.add("West", teltf);
JPanel jp8 = new JPanel(new GridLayout(1, 2, 5, 0));
jp8.add(tel1tf);
jp8.add(tel2tf);
p7.add("Center", jp8);
p1.add(p7);
JPanel p9 = new JPanel(new BorderLayout(5, 0));
tel1vc.addElement("010 ");
tel1vc.addElement("011 ");
tel1vc.addElement("016 ");
tel1vc.addElement("017 ");
tel1vc.addElement("018 ");
tel1vc.addElement("019 ");
p9.add("West", tel11tf);
JPanel p10 = new JPanel(new GridLayout(1, 2, 5, 0));
p10.add(tel12tf);
p10.add(tel13tf);
p9.add("Center", p10);
p1.add(p9);
p1.add(addrtf);
p1.add(butf);
p1.add(jiktf);
jpjp.add("Center", p1);
p2.add("West", worklb);
p2.add("Center", workjsp);
JPanel p3 = new JPanel(new FlowLayout(FlowLayout.RIGHT));
p3.add(regbt);
p3.add(clearbt);
p2.add("South", p3);
jpjp.add("South", p2);
}
private void initjpjp1(){
JPanel p1 = new JPanel(new GridLayout(5, 1));
bg.add(namerb);
bg.add(juminrb);
bg.add(telrb);
bg.add(tel1rb);
bg.add(idrb);
p1.add(namerb);
p1.add(juminrb);
p1.add(telrb);
p1.add(tel1rb);
p1.add(idrb);
jpjp1.add("North", p1);
JPanel p2 = new JPanel(new BorderLayout());
JPanel p3 = new JPanel(new BorderLayout());
p3.add("West", searchlb);
p3.add("Center", searchtf);
p3.add("East", searchbt);
p2.add("North", p3);
JPanel p4 = new JPanel(new BorderLayout());
p4.add("West", viewlb);
p4.add("Center", viewjsp);
p2.add("Center", p4);
JPanel p5 = new JPanel(new FlowLayout(FlowLayout.RIGHT));
p5.add(changebt);
p2.add("South", p5);
jpjp1.add("Center", p2);
}
private void initjpjp2(){
jpjp2.add("North", dellb);
JPanel p = new JPanel(new FlowLayout(FlowLayout.RIGHT));
p.add(delbt);
p.add(delclearbt);
jpjp2.add("South", p);
for(int i = 0; i < 11; i++){
dtcr[i] = new DefaultTableCellRenderer();
if(i == 1){
dce[i] = new DefaultCellEditor(new JCheckBox("", false));
}
else{
dce[i] = new DefaultCellEditor(new JTextField());
}
tc[i] = new TableColumn(i, 75, dtcr[i], dce[i]);
tc[i].setHeaderValue(headername[i]);
dtcm.addColumn(tc[i]);
}
dtcr[0].setBackground(Color.lightGray);
dtcr[0].setHorizontalAlignment(JLabel.CENTER);
dtcr[1].setHorizontalAlignment(JLabel.CENTER);
for(int i = 0; i < 10; i++){
jt.setValueAt(String.valueOf(i + 1), i, 0);
}
jt.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
jth.setReorderingAllowed(false);
jth.setResizingAllowed(true);
jt.setTableHeader(jth);
jpjp2.add("Center", tablejsp);
}
private void initjpjp3(){
JPanel p = new JPanel(new GridLayout(10, 1));
JPanel p1 = new JPanel(new GridLayout(10, 1));
JPanel p2 = new JPanel(new BorderLayout(0, 10));
p.add(namelb1);
p.add(juminlb1);
p.add(idlb1);
p.add(passlb1);
p.add(pass1lb1);
p.add(tellb1);
p.add(tel1lb1);
p.add(addrlb1);
p.add(bulb1);
p.add(jiklb1);
jpjp3.add("West", p);
p1.add(nametf1);
//JPanel p4 = new JPanel(new BorderLayout(10, 0));
//JPanel p5 = new JPanel(new GridLayout(1, 2, 5, 0));
//p5.add(jumintf1);
//p5.add(jumin1tf1);
//p4.add("Center", p5);
//p4.add("East", juminbt1);
p1.add(jumintf1);
//JPanel p6 = new JPanel(new BorderLayout(10, 0));
//p6.add("Center", idtf1);
//p6.add("East", idbt1);
p1.add(idtf1);
p1.add(passtf1);
p1.add(pass1tf1);
JPanel p7 = new JPanel(new BorderLayout(5, 0));
telvc1.addElement("02 ");
telvc1.addElement("053 ");
telvc1.addElement("061 ");
p7.add("West", teltf1);
JPanel jp8 = new JPanel(new GridLayout(1, 2, 5, 0));
jp8.add(tel1tf1);
jp8.add(tel2tf1);
p7.add("Center", jp8);
p1.add(p7);
JPanel p9 = new JPanel(new BorderLayout(5, 0));
tel1vc1.addElement("010 ");
tel1vc1.addElement("011 ");
tel1vc1.addElement("016 ");
tel1vc1.addElement("017 ");
tel1vc1.addElement("018 ");
tel1vc1.addElement("019 ");
p9.add("West", tel11tf1);
JPanel p10 = new JPanel(new GridLayout(1, 2, 5, 0));
p10.add(tel12tf1);
p10.add(tel13tf1);
p9.add("Center", p10);
p1.add(p9);
p1.add(addrtf1);
p1.add(butf1);
p1.add(jiktf1);
jpjp3.add("Center", p1);
p2.add("West", worklb1);
p2.add("Center", workjsp1);
JPanel p3 = new JPanel(new FlowLayout(FlowLayout.RIGHT));
p3.add(regbt1);
p3.add(clearbt1);
p2.add("South", p3);
jpjp3.add("South", p2);
}
public void start(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jbt4.addActionListener(this);
jtf.addActionListener(this);
jbt1.addActionListener(this);
nametf.addFocusListener(this);
regbt.addActionListener(this);
clearbt.addActionListener(this);
juminbt.addActionListener(this);
idbt.addActionListener(this);
searchtf.addActionListener(this);
searchbt.addActionListener(this);
changebt.addActionListener(this);
regbt1.addActionListener(this);
jtb.addChangeListener(this);
delbt.addActionListener(this);
delclearbt.addActionListener(this);
jbt2.addActionListener(this);
jbt3.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == jbt4){
System.exit(0);
}
else if(e.getSource() == jtf || e.getSource() == jbt1){
String imsi = jtf.getText().trim();
if(imsi == null || imsi.length() == 0){
return;
}
BuSet buset = new BuSet(imsi, busetnum);
busetnum++;
busetvc.add(buset);
jtf.setText("");
this.treerefresh();
}
else if(e.getSource() == regbt){
Person ps = new Person(nametf.getText().trim(), jumintf.getText().trim() + "-" + jumin1tf.getText().trim(),
idtf.getText().trim(), new String(passtf.getPassword()),
(String)teltf.getSelectedItem() + "-" + tel1tf.getText().trim() + "-" + tel2tf.getText().trim(),
(String)tel11tf.getSelectedItem() + "-" + tel12tf.getText().trim() + "-" + tel13tf.getText().trim(),
addrtf.getText().trim(), (String)butf.getSelectedItem(), (String)jiktf.getSelectedItem(),
worktf.getText().trim());
personvc.add(ps);
nametf.setText("");
jumintf.setText("");
jumin1tf.setText("");
idtf.setText("");
passtf.setText("");
pass1tf.setText("");
teltf.setSelectedIndex(0);
tel1tf.setText("");
tel2tf.setText("");
tel11tf.setSelectedIndex(0);
tel12tf.setText("");
tel13tf.setText("");
addrtf.setText("");
butf.setSelectedIndex(0);
jiktf.setSelectedIndex(0);
worktf.setText("");
nametf.requestFocus();
this.treerefresh();
}
else if(e.getSource() == clearbt){
nametf.setText("");
jumintf.setText("");
jumin1tf.setText("");
idtf.setText("");
passtf.setText("");
pass1tf.setText("");
teltf.setSelectedIndex(0);
tel1tf.setText("");
tel2tf.setText("");
tel11tf.setSelectedIndex(0);
tel12tf.setText("");
tel13tf.setText("");
addrtf.setText("");
butf.setSelectedIndex(0);
jiktf.setSelectedIndex(0);
worktf.setText("");
nametf.requestFocus();
}
else if(e.getSource() == juminbt){
String str = jumintf.getText().trim() + "-" + jumin1tf.getText().trim();
if(personvc.size() == 0){
JOptionPane.showMessageDialog(this, "사용 가능 합니다.");
idtf.requestFocus();
}
for(int i = 0; i < personvc.size(); i++){
Person ps = (Person)personvc.elementAt(i);
if(str.equals(ps.jumin)){
JOptionPane.showMessageDialog(this, "그 주민번호는 이미 존재합니다.");
jumintf.setText("");
jumin1tf.setText("");
jumintf.requestFocus();
return;
}
else{//등록되지 않은 사용자... 사용할 수 있다...
JOptionPane.showMessageDialog(this, "사용 가능 합니다.");
idtf.requestFocus();
}
}
}
else if(e.getSource() == idbt){
String str = idtf.getText().trim();
if(personvc.size() == 0){
JOptionPane.showMessageDialog(this, "사용 가능한 ID 입니다.");
passtf.requestFocus();
}
for(int i = 0; i < personvc.size(); i++){
Person ps = (Person)personvc.elementAt(i);
if(str.equals(ps.id)){
JOptionPane.showMessageDialog(this, "그 ID는 이미 존재합니다.");
idtf.setText("");
idtf.requestFocus();
return;
}
else{//사용할 수 있다...
JOptionPane.showMessageDialog(this, "사용 가능한 ID 입니다.");
passtf.requestFocus();
}
}
}
else if(e.getSource() == searchtf || e.getSource() == searchbt){
String str = searchtf.getText().trim();
if(personvc.size() == 0){
JOptionPane.showMessageDialog(this, "데이터가 하나도 없습니다... 검색 오류..");
return;
}
viewvc.clear();
for(int i = 0; i < personvc.size(); i++){
Person ps = (Person)personvc.elementAt(i);
int k = -1;
if(namerb.isSelected()){
if(ps.name.equals(str)){
k = i;
}
}
else if(juminrb.isSelected()){
if(ps.jumin.equals(str)){
k = i;
}
}
else if(telrb.isSelected()){
if(ps.tel.equals(str)){
k = i;
}
}
else if(tel1rb.isSelected()){
if(ps.tel1.equals(str)){
k = i;
}
}
else if(idrb.isSelected()){
if(ps.id.equals(str)){
k = i;
}
}
if(k != -1){
viewvc.add(ps.name + ":" + ps.jumin + ":" + ps.id);
}
}
viewli.setListData(viewvc);
viewli.updateUI();
}
else if(e.getSource() == changebt){
String str = (String)viewli.getSelectedValue();//이름:주민번호:아이디
str = str.substring(str.indexOf(":") + 1, str.lastIndexOf(":"));
jtb.setSelectedIndex(3);
jikvc1.clear();
jikvc1.add("사장");
jikvc1.add("이사");
jikvc1.add("부장");
jikvc1.add("과장");
jikvc1.add("차장");
jikvc1.add("대리");
jikvc1.add("사원");
//jiktf.setListData(jikvc);
buvc1.clear();
for(int i = 0; i < busetvc.size(); i++){
BuSet imsi = (BuSet)busetvc.elementAt(i);
buvc1.add(imsi.getBuname());
}
//butf.setListData(buvc);
int kkk = -1;
for(int i = 0; i < personvc.size(); i++){
Person ps = (Person)personvc.elementAt(i);
if(ps.jumin.equals(str)){
kkk = i;
break;
}
}
if(kkk == -1){
JOptionPane.showMessageDialog(this, "심각한 오류 발생!!!");
return;
}
Person pps = (Person)personvc.elementAt(kkk);
nametf1.setText(pps.name);
jumintf1.setText(pps.jumin);
idtf1.setText(pps.id);
String imsi = pps.tel.substring(0, pps.tel.indexOf("-"));
for(int i = 0; i < teltf1.getItemCount(); i++){
if(imsi.equals(teltf1.getItemAt(i))){
teltf1.setSelectedIndex(i);
break;
}
}
tel1tf1.setText(pps.tel.substring(pps.tel.indexOf("-") + 1, pps.tel.lastIndexOf("-")));
tel2tf1.setText(pps.tel.substring(pps.tel.lastIndexOf("-") + 1));
imsi = pps.tel1.substring(0, pps.tel1.indexOf("-"));
for(int i = 0; i < tel11tf1.getItemCount(); i++){
if(imsi.equals(tel11tf1.getItemAt(i))){
tel11tf1.setSelectedIndex(i);
break;
}
}
tel12tf1.setText(pps.tel1.substring(pps.tel1.indexOf("-") + 1, pps.tel1.lastIndexOf("-")));
tel13tf1.setText(pps.tel1.substring(pps.tel1.lastIndexOf("-") + 1));
addrtf1.setText(pps.addr);
imsi = pps.buname;
for(int i = 0; i < butf1.getItemCount(); i++){
if(imsi.equals(butf1.getItemAt(i))){
butf1.setSelectedIndex(i);
break;
}
}
imsi = pps.jik;
for(int i = 0; i < jiktf1.getItemCount(); i++){
if(imsi.equals(jiktf1.getItemAt(i))){
jiktf1.setSelectedIndex(i);
break;
}
}
worktf1.setText(pps.work);
}
else if(e.getSource() == regbt1){
String str = jumintf1.getText().trim();
for(int i = 0; i < personvc.size(); i++){
Person ps = (Person)personvc.elementAt(i);
if(ps.jumin.equals(str)){
ps.pass = new String(passtf1.getPassword());//반드시 패스워드를 바꿔야 함...
ps.tel = (String)teltf1.getSelectedItem() + "-" + tel1tf1.getText().trim() + "-" + tel2tf1.getText().trim();
ps.tel1 = (String)tel11tf1.getSelectedItem() + "-" + tel12tf1.getText().trim() + "-" + tel13tf1.getText().trim();
ps.addr = addrtf1.getText().trim();
ps.buname = (String)butf1.getSelectedItem();
ps.jik = (String)jiktf1.getSelectedItem();
ps.work = worktf1.getText().trim();
break;
}
}
jtb.setSelectedIndex(1);
}
else if(e.getSource() == delbt){
int imsi = personvc.size();
for(int i = 0, j = 0; i < imsi; i++, j++){
if(((Boolean)jt.getValueAt(i, 1)).equals(new Boolean(true))){
personvc.removeElementAt(j);
j--;
}
}
dtm.setRowCount(personvc.size());
for(int i = 0; i < personvc.size(); i++){
Person ps = (Person)personvc.elementAt(i);
jt.setValueAt(String.valueOf(i + 1), i, 0);
jt.setValueAt(ps.id, i, 2);
jt.setValueAt(ps.name, i, 3);
jt.setValueAt(ps.jumin, i, 4);
jt.setValueAt(ps.tel, i, 5);
jt.setValueAt(ps.tel1, i, 6);
jt.setValueAt(ps.addr, i, 7);
jt.setValueAt(ps.buname, i, 8);
jt.setValueAt(ps.jik, i, 9);
jt.setValueAt(ps.work, i, 10);
}
this.treerefresh();
}
else if(e.getSource() == delclearbt){
for(int i = 0; i < personvc.size(); i++){
jt.setValueAt(new Boolean(false), i, 1);
}
}
else if(e.getSource() == jbt2){
jfc.showSaveDialog(this);
String strstr = jfc.getSelectedFile().toString();
String strstr1 = strstr + ".buset";
String strstr2 = strstr + ".person";
try{
File fff = new File(strstr1);
FileOutputStream fos = new FileOutputStream(fff);
BufferedOutputStream bos = new BufferedOutputStream(fos);
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(busetvc);
oos.close();
bos.close();
fos.close();
File fff1 = new File(strstr2);
FileOutputStream fos1 = new FileOutputStream(fff1);
BufferedOutputStream bos1 = new BufferedOutputStream(fos1);
ObjectOutputStream oos1 = new ObjectOutputStream(bos1);
oos1.writeObject(personvc);
oos1.close();
bos1.close();
fos1.close();
}catch(Exception eee){}
}
else if(e.getSource() == jbt3){
jfc.showOpenDialog(this);
String strstr = jfc.getSelectedFile().toString();
strstr = strstr.substring(0, strstr.indexOf("."));
String strstr1 = strstr + ".buset";
String strstr2 = strstr + ".person";
try{
File fff = new File(strstr1);
FileInputStream fos = new FileInputStream(fff);
BufferedInputStream bos = new BufferedInputStream(fos);
ObjectInputStream oos = new ObjectInputStream(bos);
//oos.writeObject(busetvc);
busetvc.clear();
busetvc = (Vector)oos.readObject();
oos.close();
bos.close();
fos.close();
File fff1 = new File(strstr2);
FileInputStream fos1 = new FileInputStream(fff1);
BufferedInputStream bos1 = new BufferedInputStream(fos1);
ObjectInputStream oos1 = new ObjectInputStream(bos1);
//oos1.writeObject(personvc);
personvc.clear();
personvc = (Vector)oos1.readObject();
oos1.close();
bos1.close();
fos1.close();
}catch(Exception eee){}
this.treerefresh();
}
}
public void treerefresh(){
DefaultMutableTreeNode[] node = new DefaultMutableTreeNode[busetvc.size()];
root.removeAllChildren();
for(int i = 0; i < node.length; i++){
BuSet imsi = (BuSet)busetvc.elementAt(i);
node[i] = new DefaultMutableTreeNode(imsi.getBuname());
root.add(node[i]);
}
tree.updateUI();
if(personvc.size() != 0){
DefaultMutableTreeNode[] childnode = new DefaultMutableTreeNode[personvc.size()];
for(int i = 0; i < node.length; i++){
node[i].removeAllChildren();
}
for(int i = 0; i < personvc.size(); i++){
Person ps = (Person)personvc.elementAt(i);
childnode[i] = new DefaultMutableTreeNode(ps.name);
for(int j = 0; j < node.length; j++){
if(ps.buname.equals((String)node[j].toString())){
node[j].add(childnode[i]);
break;
}
}
}
}
tree.updateUI();
}
public void focusGained(FocusEvent e){
if(e.getSource() == nametf){
jikvc.clear();
jikvc.add("사장");
jikvc.add("이사");
jikvc.add("부장");
jikvc.add("과장");
jikvc.add("차장");
jikvc.add("대리");
jikvc.add("사원");
//jiktf.setListData(jikvc);
buvc.clear();
for(int i = 0; i < busetvc.size(); i++){
BuSet imsi = (BuSet)busetvc.elementAt(i);
buvc.add(imsi.getBuname());
}
//butf.setListData(buvc);
}
}
public void focusLost(FocusEvent e){
}
public void stateChanged(ChangeEvent e){
if(e.getSource() == jtb){
if(jtb.getSelectedIndex() == 2){
dtm.setRowCount(personvc.size());
for(int i = 0; i < personvc.size(); i++){
Person ps = (Person)personvc.elementAt(i);
jt.setValueAt(String.valueOf(i + 1), i, 0);
jt.setValueAt(ps.id, i, 2);
jt.setValueAt(ps.name, i, 3);
jt.setValueAt(ps.jumin, i, 4);
jt.setValueAt(ps.tel, i, 5);
jt.setValueAt(ps.tel1, i, 6);
jt.setValueAt(ps.addr, i, 7);
jt.setValueAt(ps.buname, i, 8);
jt.setValueAt(ps.jik, i, 9);
jt.setValueAt(ps.work, i, 10);
}
}
}
}
}
************Exam_03.java***************
import javax.swing.UIManager;
public class Exam_03{
public static void main(String[] ar){
try{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}catch(Exception ee){}
Exam_03_Sub es = new Exam_03_Sub("인사관리(ERP)");
}
}
안녕하세요.. 제가 자바공부를 하다가 인사관리프로그램 소스를 받았는데
mysql로 db연동하는거랑 ID중복체크 , 주민번호체크 , 프린트기능, 우편번호 나오게하는거좀 알려주세요 ㅠㅠ
적지만 가지고있는 내공 전부 드리겠습니다
***********BuSet.java**************
/*
// header - edit "Data/yourJavaHeader" to customize
// contents - edit "EventHandlers/Java file/onCreate" to customize
//
*/
/*
// header - edit "Data/yourJavaHeader" to customize
// contents - edit "EventHandlers/Java file/onCreate" to customize
//
*/
import java.util.*;
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;
import javax.swing.table.*;
import javax.swing.tree.*;
import java.io.*;
import java.util.*;
class BuSet implements Serializable{
private String buname;
private int bunum;
public BuSet(String str, int i){
buname = str;
bunum = i;
}
public String getBuname(){
return buname;
}
public int getBunum(){
return bunum;
}
public void setBuname(String str){
buname = str;
}
public void setBunum(int i){
bunum = i;
}
}
class Person implements Serializable{
String name;
String jumin;
String id;
String pass;
String tel;
String tel1;
String addr;
String buname;
String jik;
String work;
public Person(String a, String b, String c, String d, String e, String f, String g, String h, String i, String j){
name = a; jumin = b; id = c; pass = d; tel = e; tel1 = f; addr = g; buname = h; jik = i; work = j;
}
}
class Exam_03_Sub extends JFrame implements ActionListener, FocusListener, ChangeListener{
private JRootPane jrp;
private Container con;
//전체 화면의 North
private JLabel jl = new JLabel("<인사 관리>", JLabel.CENTER);
//전체 화면의 Center
private JSplitPane jsp = new JSplitPane();
//전체 화면의 South
private JPanel jp = new JPanel(new GridLayout(2, 1));
private JPanel jp1 = new JPanel(new BorderLayout());
private JPanel jp2 = new JPanel(new GridLayout(1, 2));
private JPanel jp3 = new JPanel(new GridLayout(1, 2));
private JPanel jp4 = new JPanel(new GridLayout(1, 2));
private JLabel jlb = new JLabel("부서명 : ", JLabel.RIGHT);
private JTextField jtf = new JTextField();
private JButton jbt1 = new JButton("부서추가");
private JButton jbt2 = new JButton("파일로저장");
private JButton jbt3 = new JButton("불러오기");
private JButton jbt4 = new JButton("종료");
//Center의 West
private JPanel jpjp0 = new JPanel(new BorderLayout());
private JLabel jljl = new JLabel("등록인원", JLabel.CENTER);
//private JTree tree = new JTree();
//private JScrollPane treejsp = new JScrollPane(tree);
//Center의 Center
private JTabbedPane jtb = new JTabbedPane();
private JPanel jpjp = new JPanel(new BorderLayout());
private JPanel jpjp1 = new JPanel(new BorderLayout());
private JPanel jpjp2 = new JPanel(new BorderLayout());
private JPanel jpjp3 = new JPanel(new BorderLayout());
//사용자 등록...
private JLabel namelb = new JLabel("이름 : ", JLabel.RIGHT);
private JLabel juminlb = new JLabel("주민번호 : ", JLabel.RIGHT);
private JLabel idlb = new JLabel("ID : ", JLabel.RIGHT);
private JLabel passlb = new JLabel("비밀번호 : ", JLabel.RIGHT);
private JLabel pass1lb = new JLabel("비밀번호 확인 : ", JLabel.RIGHT);
private JLabel tellb = new JLabel("전화번호 : ", JLabel.RIGHT);
private JLabel tel1lb = new JLabel("휴대폰 : ", JLabel.RIGHT);
private JLabel addrlb = new JLabel("주소 : ", JLabel.RIGHT);
private JLabel bulb = new JLabel("부서 : ", JLabel.RIGHT);
private JLabel jiklb = new JLabel("직책 : ", JLabel.RIGHT);
private JLabel worklb = new JLabel("업무내용 작성 : ", JLabel.RIGHT);
private JButton regbt = new JButton("등록");
private JButton clearbt = new JButton("Clear");
private JTextField nametf = new JTextField();
private JTextField jumintf = new JTextField();
private JTextField jumin1tf = new JTextField();
private JButton juminbt = new JButton("확인");
private JTextField idtf = new JTextField();
private JButton idbt = new JButton("중복확인");
private JPasswordField passtf = new JPasswordField();
private JPasswordField pass1tf = new JPasswordField();
private Vector telvc = new Vector();
private JComboBox teltf = new JComboBox(telvc);
private JTextField tel1tf = new JTextField();
private JTextField tel2tf = new JTextField();
private Vector tel1vc = new Vector();
private JComboBox tel11tf = new JComboBox(tel1vc);
private JTextField tel12tf = new JTextField();
private JTextField tel13tf = new JTextField();
private JTextField addrtf = new JTextField();
private Vector buvc = new Vector();
private JComboBox butf = new JComboBox(buvc);
private Vector jikvc = new Vector();
private JComboBox jiktf = new JComboBox(jikvc);
private JTextArea worktf = new JTextArea(5, 20);
private JScrollPane workjsp = new JScrollPane(worktf);
//정보수정...
private JLabel namelb1 = new JLabel("이름 : ", JLabel.RIGHT);
private JLabel juminlb1 = new JLabel("주민번호 : ", JLabel.RIGHT);
private JLabel idlb1 = new JLabel("ID : ", JLabel.RIGHT);
private JLabel passlb1 = new JLabel("비밀번호 : ", JLabel.RIGHT);
private JLabel pass1lb1 = new JLabel("비밀번호 확인 : ", JLabel.RIGHT);
private JLabel tellb1 = new JLabel("전화번호 : ", JLabel.RIGHT);
private JLabel tel1lb1 = new JLabel("휴대폰 : ", JLabel.RIGHT);
private JLabel addrlb1 = new JLabel("주소 : ", JLabel.RIGHT);
private JLabel bulb1 = new JLabel("부서 : ", JLabel.RIGHT);
private JLabel jiklb1 = new JLabel("직책 : ", JLabel.RIGHT);
private JLabel worklb1 = new JLabel("업무내용 작성 : ", JLabel.RIGHT);
private JButton regbt1 = new JButton("수정");
private JButton clearbt1 = new JButton("Clear");
private JLabel nametf1 = new JLabel("Guest");
private JLabel jumintf1 = new JLabel("******-*******");
//private JTextField jumin1tf1 = new JTextField();
//private JButton juminbt1 = new JButton("확인");
private JLabel idtf1 = new JLabel("Guest");
//private JButton idbt1 = new JButton("중복확인");
private JPasswordField passtf1 = new JPasswordField("*****************************");
private JPasswordField pass1tf1 = new JPasswordField("*****************************");
private Vector telvc1 = new Vector();
private JComboBox teltf1 = new JComboBox(telvc1);
private JTextField tel1tf1 = new JTextField();
private JTextField tel2tf1 = new JTextField();
private Vector tel1vc1 = new Vector();
private JComboBox tel11tf1 = new JComboBox(tel1vc1);
private JTextField tel12tf1 = new JTextField();
private JTextField tel13tf1 = new JTextField();
private JTextField addrtf1 = new JTextField();
private Vector buvc1 = new Vector();
private JComboBox butf1 = new JComboBox(buvc1);
private Vector jikvc1 = new Vector();
private JComboBox jiktf1 = new JComboBox(jikvc1);
private JTextArea worktf1 = new JTextArea(5, 20);
private JScrollPane workjsp1 = new JScrollPane(worktf1);
//검색...
private ButtonGroup bg = new ButtonGroup();
private JRadioButton namerb = new JRadioButton("이름으로 검색", true);
private JRadioButton juminrb = new JRadioButton("주민번호로 검색");
private JRadioButton telrb = new JRadioButton("전화번호으로 검색");
private JRadioButton tel1rb = new JRadioButton("휴대폰으로 검색");
private JRadioButton idrb = new JRadioButton("ID로 검색");
private JLabel searchlb = new JLabel("검색 필드 : ", JLabel.RIGHT);
private JTextField searchtf = new JTextField();
private JButton searchbt = new JButton("검색");
private JLabel viewlb = new JLabel("결과 표시 : ", JLabel.RIGHT);
private Vector viewvc = new Vector();
private JList viewli = new JList(viewvc);
private JScrollPane viewjsp = new JScrollPane(viewli);
private JButton changebt = new JButton("해당 사용자 정보 변경 및 상세보기");
//삭제...
private JLabel dellb = new JLabel("삭제할 대상을 체크하시오.");
private JButton delbt = new JButton("체크된 사용자 삭제");
private JButton delclearbt = new JButton("Check Clear");
private String[] headername = {"번호", "삭제", "ID", "이름", "주민번호", "전화번호", "휴대폰번호", "주소", "부서", "직위", "업무내용"};
private DefaultTableModel dtm = new DefaultTableModel(headername, 10);
private DefaultTableColumnModel dtcm = new DefaultTableColumnModel();
private DefaultListSelectionModel dlsm = new DefaultListSelectionModel();
private JTable jt = new JTable(dtm, dtcm, dlsm);
private JScrollPane tablejsp = new JScrollPane(jt);
private TableColumn[] tc = new TableColumn[11];
private DefaultTableCellRenderer[] dtcr = new DefaultTableCellRenderer[11];
private DefaultCellEditor[] dce = new DefaultCellEditor[11];
private JTableHeader jth = new JTableHeader(dtcm);
//tree 구성 멤버...
private DefaultMutableTreeNode root = new DefaultMutableTreeNode("(주)주식회사");
private DefaultTreeModel treemodel = new DefaultTreeModel(root);
private JTree tree = new JTree(treemodel);
private JScrollPane treejsp = new JScrollPane(tree);
//부서 셋팅 관련 멤버...
private static int busetnum = 0;
private Vector busetvc = new Vector();
//사용자 저장 멤버...
private Vector personvc = new Vector();
//파일의 저장...
private JFileChooser jfc = new JFileChooser();
public Exam_03_Sub(String str){
super(str);
this.init();
this.start();
this.setSize(600, 500);
Dimension di = Toolkit.getDefaultToolkit().getScreenSize();
Dimension di1 = this.getSize();
this.setLocation((int)(di.getWidth() / 2 - di1.getWidth() / 2), (int)(di.getHeight() / 2 - di1.getHeight() / 2));
this.setVisible(true);
}
public void init(){
jrp = this.getRootPane();
con = jrp.getContentPane();
con.setLayout(new BorderLayout(5, 5));
jl.setFont(new Font("휴먼옛체", Font.BOLD, 20));
//전체의 North
con.add("North", jl);
//전체의 Center
jpjp0.add("North", jljl);
jpjp0.add("Center", treejsp);
jpjp0.setBorder(new BevelBorder(BevelBorder.RAISED));
jsp.setLeftComponent(jpjp0);
this.initjpjp();
this.initjpjp1();
this.initjpjp2();
this.initjpjp3();
jtb.addTab("사용자등록", jpjp);
jtb.addTab("검색", jpjp1);
jtb.addTab("삭제", jpjp2);
jtb.addTab("정보수정", jpjp3);
jsp.setRightComponent(jtb);
jsp.setOneTouchExpandable(true);
jsp.setDividerSize(20);
jsp.setDividerLocation(120);
con.add("Center", jsp);
//전체의 South
jp1.add("West", jlb);
jp1.add("Center", jtf);
jp1.add("East", jbt1);
jp.add(jp1);
jp3.add(jbt2);
jp3.add(jbt3);
jp2.add(jp3);
jp4.add(new JLabel());
jp4.add(jbt4);
jp2.add(jp4);
jp.add(jp2);
con.add("South", jp);
jtb.setEnabledAt(3, false);
}
private void initjpjp(){
JPanel p = new JPanel(new GridLayout(10, 1));
JPanel p1 = new JPanel(new GridLayout(10, 1));
JPanel p2 = new JPanel(new BorderLayout(0, 10));
p.add(namelb);
p.add(juminlb);
p.add(idlb);
p.add(passlb);
p.add(pass1lb);
p.add(tellb);
p.add(tel1lb);
p.add(addrlb);
p.add(bulb);
p.add(jiklb);
jpjp.add("West", p);
p1.add(nametf);
JPanel p4 = new JPanel(new BorderLayout(10, 0));
JPanel p5 = new JPanel(new GridLayout(1, 2, 5, 0));
p5.add(jumintf);
p5.add(jumin1tf);
p4.add("Center", p5);
p4.add("East", juminbt);
p1.add(p4);
JPanel p6 = new JPanel(new BorderLayout(10, 0));
p6.add("Center", idtf);
p6.add("East", idbt);
p1.add(p6);
p1.add(passtf);
p1.add(pass1tf);
JPanel p7 = new JPanel(new BorderLayout(5, 0));
telvc.addElement("02 ");
telvc.addElement("053 ");
telvc.addElement("061 ");
p7.add("West", teltf);
JPanel jp8 = new JPanel(new GridLayout(1, 2, 5, 0));
jp8.add(tel1tf);
jp8.add(tel2tf);
p7.add("Center", jp8);
p1.add(p7);
JPanel p9 = new JPanel(new BorderLayout(5, 0));
tel1vc.addElement("010 ");
tel1vc.addElement("011 ");
tel1vc.addElement("016 ");
tel1vc.addElement("017 ");
tel1vc.addElement("018 ");
tel1vc.addElement("019 ");
p9.add("West", tel11tf);
JPanel p10 = new JPanel(new GridLayout(1, 2, 5, 0));
p10.add(tel12tf);
p10.add(tel13tf);
p9.add("Center", p10);
p1.add(p9);
p1.add(addrtf);
p1.add(butf);
p1.add(jiktf);
jpjp.add("Center", p1);
p2.add("West", worklb);
p2.add("Center", workjsp);
JPanel p3 = new JPanel(new FlowLayout(FlowLayout.RIGHT));
p3.add(regbt);
p3.add(clearbt);
p2.add("South", p3);
jpjp.add("South", p2);
}
private void initjpjp1(){
JPanel p1 = new JPanel(new GridLayout(5, 1));
bg.add(namerb);
bg.add(juminrb);
bg.add(telrb);
bg.add(tel1rb);
bg.add(idrb);
p1.add(namerb);
p1.add(juminrb);
p1.add(telrb);
p1.add(tel1rb);
p1.add(idrb);
jpjp1.add("North", p1);
JPanel p2 = new JPanel(new BorderLayout());
JPanel p3 = new JPanel(new BorderLayout());
p3.add("West", searchlb);
p3.add("Center", searchtf);
p3.add("East", searchbt);
p2.add("North", p3);
JPanel p4 = new JPanel(new BorderLayout());
p4.add("West", viewlb);
p4.add("Center", viewjsp);
p2.add("Center", p4);
JPanel p5 = new JPanel(new FlowLayout(FlowLayout.RIGHT));
p5.add(changebt);
p2.add("South", p5);
jpjp1.add("Center", p2);
}
private void initjpjp2(){
jpjp2.add("North", dellb);
JPanel p = new JPanel(new FlowLayout(FlowLayout.RIGHT));
p.add(delbt);
p.add(delclearbt);
jpjp2.add("South", p);
for(int i = 0; i < 11; i++){
dtcr[i] = new DefaultTableCellRenderer();
if(i == 1){
dce[i] = new DefaultCellEditor(new JCheckBox("", false));
}
else{
dce[i] = new DefaultCellEditor(new JTextField());
}
tc[i] = new TableColumn(i, 75, dtcr[i], dce[i]);
tc[i].setHeaderValue(headername[i]);
dtcm.addColumn(tc[i]);
}
dtcr[0].setBackground(Color.lightGray);
dtcr[0].setHorizontalAlignment(JLabel.CENTER);
dtcr[1].setHorizontalAlignment(JLabel.CENTER);
for(int i = 0; i < 10; i++){
jt.setValueAt(String.valueOf(i + 1), i, 0);
}
jt.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
jth.setReorderingAllowed(false);
jth.setResizingAllowed(true);
jt.setTableHeader(jth);
jpjp2.add("Center", tablejsp);
}
private void initjpjp3(){
JPanel p = new JPanel(new GridLayout(10, 1));
JPanel p1 = new JPanel(new GridLayout(10, 1));
JPanel p2 = new JPanel(new BorderLayout(0, 10));
p.add(namelb1);
p.add(juminlb1);
p.add(idlb1);
p.add(passlb1);
p.add(pass1lb1);
p.add(tellb1);
p.add(tel1lb1);
p.add(addrlb1);
p.add(bulb1);
p.add(jiklb1);
jpjp3.add("West", p);
p1.add(nametf1);
//JPanel p4 = new JPanel(new BorderLayout(10, 0));
//JPanel p5 = new JPanel(new GridLayout(1, 2, 5, 0));
//p5.add(jumintf1);
//p5.add(jumin1tf1);
//p4.add("Center", p5);
//p4.add("East", juminbt1);
p1.add(jumintf1);
//JPanel p6 = new JPanel(new BorderLayout(10, 0));
//p6.add("Center", idtf1);
//p6.add("East", idbt1);
p1.add(idtf1);
p1.add(passtf1);
p1.add(pass1tf1);
JPanel p7 = new JPanel(new BorderLayout(5, 0));
telvc1.addElement("02 ");
telvc1.addElement("053 ");
telvc1.addElement("061 ");
p7.add("West", teltf1);
JPanel jp8 = new JPanel(new GridLayout(1, 2, 5, 0));
jp8.add(tel1tf1);
jp8.add(tel2tf1);
p7.add("Center", jp8);
p1.add(p7);
JPanel p9 = new JPanel(new BorderLayout(5, 0));
tel1vc1.addElement("010 ");
tel1vc1.addElement("011 ");
tel1vc1.addElement("016 ");
tel1vc1.addElement("017 ");
tel1vc1.addElement("018 ");
tel1vc1.addElement("019 ");
p9.add("West", tel11tf1);
JPanel p10 = new JPanel(new GridLayout(1, 2, 5, 0));
p10.add(tel12tf1);
p10.add(tel13tf1);
p9.add("Center", p10);
p1.add(p9);
p1.add(addrtf1);
p1.add(butf1);
p1.add(jiktf1);
jpjp3.add("Center", p1);
p2.add("West", worklb1);
p2.add("Center", workjsp1);
JPanel p3 = new JPanel(new FlowLayout(FlowLayout.RIGHT));
p3.add(regbt1);
p3.add(clearbt1);
p2.add("South", p3);
jpjp3.add("South", p2);
}
public void start(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jbt4.addActionListener(this);
jtf.addActionListener(this);
jbt1.addActionListener(this);
nametf.addFocusListener(this);
regbt.addActionListener(this);
clearbt.addActionListener(this);
juminbt.addActionListener(this);
idbt.addActionListener(this);
searchtf.addActionListener(this);
searchbt.addActionListener(this);
changebt.addActionListener(this);
regbt1.addActionListener(this);
jtb.addChangeListener(this);
delbt.addActionListener(this);
delclearbt.addActionListener(this);
jbt2.addActionListener(this);
jbt3.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == jbt4){
System.exit(0);
}
else if(e.getSource() == jtf || e.getSource() == jbt1){
String imsi = jtf.getText().trim();
if(imsi == null || imsi.length() == 0){
return;
}
BuSet buset = new BuSet(imsi, busetnum);
busetnum++;
busetvc.add(buset);
jtf.setText("");
this.treerefresh();
}
else if(e.getSource() == regbt){
Person ps = new Person(nametf.getText().trim(), jumintf.getText().trim() + "-" + jumin1tf.getText().trim(),
idtf.getText().trim(), new String(passtf.getPassword()),
(String)teltf.getSelectedItem() + "-" + tel1tf.getText().trim() + "-" + tel2tf.getText().trim(),
(String)tel11tf.getSelectedItem() + "-" + tel12tf.getText().trim() + "-" + tel13tf.getText().trim(),
addrtf.getText().trim(), (String)butf.getSelectedItem(), (String)jiktf.getSelectedItem(),
worktf.getText().trim());
personvc.add(ps);
nametf.setText("");
jumintf.setText("");
jumin1tf.setText("");
idtf.setText("");
passtf.setText("");
pass1tf.setText("");
teltf.setSelectedIndex(0);
tel1tf.setText("");
tel2tf.setText("");
tel11tf.setSelectedIndex(0);
tel12tf.setText("");
tel13tf.setText("");
addrtf.setText("");
butf.setSelectedIndex(0);
jiktf.setSelectedIndex(0);
worktf.setText("");
nametf.requestFocus();
this.treerefresh();
}
else if(e.getSource() == clearbt){
nametf.setText("");
jumintf.setText("");
jumin1tf.setText("");
idtf.setText("");
passtf.setText("");
pass1tf.setText("");
teltf.setSelectedIndex(0);
tel1tf.setText("");
tel2tf.setText("");
tel11tf.setSelectedIndex(0);
tel12tf.setText("");
tel13tf.setText("");
addrtf.setText("");
butf.setSelectedIndex(0);
jiktf.setSelectedIndex(0);
worktf.setText("");
nametf.requestFocus();
}
else if(e.getSource() == juminbt){
String str = jumintf.getText().trim() + "-" + jumin1tf.getText().trim();
if(personvc.size() == 0){
JOptionPane.showMessageDialog(this, "사용 가능 합니다.");
idtf.requestFocus();
}
for(int i = 0; i < personvc.size(); i++){
Person ps = (Person)personvc.elementAt(i);
if(str.equals(ps.jumin)){
JOptionPane.showMessageDialog(this, "그 주민번호는 이미 존재합니다.");
jumintf.setText("");
jumin1tf.setText("");
jumintf.requestFocus();
return;
}
else{//등록되지 않은 사용자... 사용할 수 있다...
JOptionPane.showMessageDialog(this, "사용 가능 합니다.");
idtf.requestFocus();
}
}
}
else if(e.getSource() == idbt){
String str = idtf.getText().trim();
if(personvc.size() == 0){
JOptionPane.showMessageDialog(this, "사용 가능한 ID 입니다.");
passtf.requestFocus();
}
for(int i = 0; i < personvc.size(); i++){
Person ps = (Person)personvc.elementAt(i);
if(str.equals(ps.id)){
JOptionPane.showMessageDialog(this, "그 ID는 이미 존재합니다.");
idtf.setText("");
idtf.requestFocus();
return;
}
else{//사용할 수 있다...
JOptionPane.showMessageDialog(this, "사용 가능한 ID 입니다.");
passtf.requestFocus();
}
}
}
else if(e.getSource() == searchtf || e.getSource() == searchbt){
String str = searchtf.getText().trim();
if(personvc.size() == 0){
JOptionPane.showMessageDialog(this, "데이터가 하나도 없습니다... 검색 오류..");
return;
}
viewvc.clear();
for(int i = 0; i < personvc.size(); i++){
Person ps = (Person)personvc.elementAt(i);
int k = -1;
if(namerb.isSelected()){
if(ps.name.equals(str)){
k = i;
}
}
else if(juminrb.isSelected()){
if(ps.jumin.equals(str)){
k = i;
}
}
else if(telrb.isSelected()){
if(ps.tel.equals(str)){
k = i;
}
}
else if(tel1rb.isSelected()){
if(ps.tel1.equals(str)){
k = i;
}
}
else if(idrb.isSelected()){
if(ps.id.equals(str)){
k = i;
}
}
if(k != -1){
viewvc.add(ps.name + ":" + ps.jumin + ":" + ps.id);
}
}
viewli.setListData(viewvc);
viewli.updateUI();
}
else if(e.getSource() == changebt){
String str = (String)viewli.getSelectedValue();//이름:주민번호:아이디
str = str.substring(str.indexOf(":") + 1, str.lastIndexOf(":"));
jtb.setSelectedIndex(3);
jikvc1.clear();
jikvc1.add("사장");
jikvc1.add("이사");
jikvc1.add("부장");
jikvc1.add("과장");
jikvc1.add("차장");
jikvc1.add("대리");
jikvc1.add("사원");
//jiktf.setListData(jikvc);
buvc1.clear();
for(int i = 0; i < busetvc.size(); i++){
BuSet imsi = (BuSet)busetvc.elementAt(i);
buvc1.add(imsi.getBuname());
}
//butf.setListData(buvc);
int kkk = -1;
for(int i = 0; i < personvc.size(); i++){
Person ps = (Person)personvc.elementAt(i);
if(ps.jumin.equals(str)){
kkk = i;
break;
}
}
if(kkk == -1){
JOptionPane.showMessageDialog(this, "심각한 오류 발생!!!");
return;
}
Person pps = (Person)personvc.elementAt(kkk);
nametf1.setText(pps.name);
jumintf1.setText(pps.jumin);
idtf1.setText(pps.id);
String imsi = pps.tel.substring(0, pps.tel.indexOf("-"));
for(int i = 0; i < teltf1.getItemCount(); i++){
if(imsi.equals(teltf1.getItemAt(i))){
teltf1.setSelectedIndex(i);
break;
}
}
tel1tf1.setText(pps.tel.substring(pps.tel.indexOf("-") + 1, pps.tel.lastIndexOf("-")));
tel2tf1.setText(pps.tel.substring(pps.tel.lastIndexOf("-") + 1));
imsi = pps.tel1.substring(0, pps.tel1.indexOf("-"));
for(int i = 0; i < tel11tf1.getItemCount(); i++){
if(imsi.equals(tel11tf1.getItemAt(i))){
tel11tf1.setSelectedIndex(i);
break;
}
}
tel12tf1.setText(pps.tel1.substring(pps.tel1.indexOf("-") + 1, pps.tel1.lastIndexOf("-")));
tel13tf1.setText(pps.tel1.substring(pps.tel1.lastIndexOf("-") + 1));
addrtf1.setText(pps.addr);
imsi = pps.buname;
for(int i = 0; i < butf1.getItemCount(); i++){
if(imsi.equals(butf1.getItemAt(i))){
butf1.setSelectedIndex(i);
break;
}
}
imsi = pps.jik;
for(int i = 0; i < jiktf1.getItemCount(); i++){
if(imsi.equals(jiktf1.getItemAt(i))){
jiktf1.setSelectedIndex(i);
break;
}
}
worktf1.setText(pps.work);
}
else if(e.getSource() == regbt1){
String str = jumintf1.getText().trim();
for(int i = 0; i < personvc.size(); i++){
Person ps = (Person)personvc.elementAt(i);
if(ps.jumin.equals(str)){
ps.pass = new String(passtf1.getPassword());//반드시 패스워드를 바꿔야 함...
ps.tel = (String)teltf1.getSelectedItem() + "-" + tel1tf1.getText().trim() + "-" + tel2tf1.getText().trim();
ps.tel1 = (String)tel11tf1.getSelectedItem() + "-" + tel12tf1.getText().trim() + "-" + tel13tf1.getText().trim();
ps.addr = addrtf1.getText().trim();
ps.buname = (String)butf1.getSelectedItem();
ps.jik = (String)jiktf1.getSelectedItem();
ps.work = worktf1.getText().trim();
break;
}
}
jtb.setSelectedIndex(1);
}
else if(e.getSource() == delbt){
int imsi = personvc.size();
for(int i = 0, j = 0; i < imsi; i++, j++){
if(((Boolean)jt.getValueAt(i, 1)).equals(new Boolean(true))){
personvc.removeElementAt(j);
j--;
}
}
dtm.setRowCount(personvc.size());
for(int i = 0; i < personvc.size(); i++){
Person ps = (Person)personvc.elementAt(i);
jt.setValueAt(String.valueOf(i + 1), i, 0);
jt.setValueAt(ps.id, i, 2);
jt.setValueAt(ps.name, i, 3);
jt.setValueAt(ps.jumin, i, 4);
jt.setValueAt(ps.tel, i, 5);
jt.setValueAt(ps.tel1, i, 6);
jt.setValueAt(ps.addr, i, 7);
jt.setValueAt(ps.buname, i, 8);
jt.setValueAt(ps.jik, i, 9);
jt.setValueAt(ps.work, i, 10);
}
this.treerefresh();
}
else if(e.getSource() == delclearbt){
for(int i = 0; i < personvc.size(); i++){
jt.setValueAt(new Boolean(false), i, 1);
}
}
else if(e.getSource() == jbt2){
jfc.showSaveDialog(this);
String strstr = jfc.getSelectedFile().toString();
String strstr1 = strstr + ".buset";
String strstr2 = strstr + ".person";
try{
File fff = new File(strstr1);
FileOutputStream fos = new FileOutputStream(fff);
BufferedOutputStream bos = new BufferedOutputStream(fos);
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(busetvc);
oos.close();
bos.close();
fos.close();
File fff1 = new File(strstr2);
FileOutputStream fos1 = new FileOutputStream(fff1);
BufferedOutputStream bos1 = new BufferedOutputStream(fos1);
ObjectOutputStream oos1 = new ObjectOutputStream(bos1);
oos1.writeObject(personvc);
oos1.close();
bos1.close();
fos1.close();
}catch(Exception eee){}
}
else if(e.getSource() == jbt3){
jfc.showOpenDialog(this);
String strstr = jfc.getSelectedFile().toString();
strstr = strstr.substring(0, strstr.indexOf("."));
String strstr1 = strstr + ".buset";
String strstr2 = strstr + ".person";
try{
File fff = new File(strstr1);
FileInputStream fos = new FileInputStream(fff);
BufferedInputStream bos = new BufferedInputStream(fos);
ObjectInputStream oos = new ObjectInputStream(bos);
//oos.writeObject(busetvc);
busetvc.clear();
busetvc = (Vector)oos.readObject();
oos.close();
bos.close();
fos.close();
File fff1 = new File(strstr2);
FileInputStream fos1 = new FileInputStream(fff1);
BufferedInputStream bos1 = new BufferedInputStream(fos1);
ObjectInputStream oos1 = new ObjectInputStream(bos1);
//oos1.writeObject(personvc);
personvc.clear();
personvc = (Vector)oos1.readObject();
oos1.close();
bos1.close();
fos1.close();
}catch(Exception eee){}
this.treerefresh();
}
}
public void treerefresh(){
DefaultMutableTreeNode[] node = new DefaultMutableTreeNode[busetvc.size()];
root.removeAllChildren();
for(int i = 0; i < node.length; i++){
BuSet imsi = (BuSet)busetvc.elementAt(i);
node[i] = new DefaultMutableTreeNode(imsi.getBuname());
root.add(node[i]);
}
tree.updateUI();
if(personvc.size() != 0){
DefaultMutableTreeNode[] childnode = new DefaultMutableTreeNode[personvc.size()];
for(int i = 0; i < node.length; i++){
node[i].removeAllChildren();
}
for(int i = 0; i < personvc.size(); i++){
Person ps = (Person)personvc.elementAt(i);
childnode[i] = new DefaultMutableTreeNode(ps.name);
for(int j = 0; j < node.length; j++){
if(ps.buname.equals((String)node[j].toString())){
node[j].add(childnode[i]);
break;
}
}
}
}
tree.updateUI();
}
public void focusGained(FocusEvent e){
if(e.getSource() == nametf){
jikvc.clear();
jikvc.add("사장");
jikvc.add("이사");
jikvc.add("부장");
jikvc.add("과장");
jikvc.add("차장");
jikvc.add("대리");
jikvc.add("사원");
//jiktf.setListData(jikvc);
buvc.clear();
for(int i = 0; i < busetvc.size(); i++){
BuSet imsi = (BuSet)busetvc.elementAt(i);
buvc.add(imsi.getBuname());
}
//butf.setListData(buvc);
}
}
public void focusLost(FocusEvent e){
}
public void stateChanged(ChangeEvent e){
if(e.getSource() == jtb){
if(jtb.getSelectedIndex() == 2){
dtm.setRowCount(personvc.size());
for(int i = 0; i < personvc.size(); i++){
Person ps = (Person)personvc.elementAt(i);
jt.setValueAt(String.valueOf(i + 1), i, 0);
jt.setValueAt(ps.id, i, 2);
jt.setValueAt(ps.name, i, 3);
jt.setValueAt(ps.jumin, i, 4);
jt.setValueAt(ps.tel, i, 5);
jt.setValueAt(ps.tel1, i, 6);
jt.setValueAt(ps.addr, i, 7);
jt.setValueAt(ps.buname, i, 8);
jt.setValueAt(ps.jik, i, 9);
jt.setValueAt(ps.work, i, 10);
}
}
}
}
}
************Exam_03.java***************
import javax.swing.UIManager;
public class Exam_03{
public static void main(String[] ar){
try{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}catch(Exception ee){}
Exam_03_Sub es = new Exam_03_Sub("인사관리(ERP)");
}
}