자바(java)로 만들어진 인사관리프로그램을 db(mysql)연동하는것좀 알려주...

자바(java)로 만들어진 인사관리프로그램을 db(mysql)연동하는것좀 알려주...

작성일 2009.09.15댓글 1건
    게시물 수정 , 삭제는 로그인 필요

안녕하세요.. 제가 자바공부를 하다가 인사관리프로그램 소스를 받았는데

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)"); 
}
}

 



profile_image 익명 작성일 -

*db연동하는거랑 ID중복체크 , 주민번호체크 , 프린트기능, 우편번호

 

db연동은 기본으로 하셔야 하는데...

질문자님의 실력을 어느정도 가늠하고 답변해드리겠습니다..

물론 시간상 소스는 다 분석 못했고요 아마 GUI부분만 구현된 소스가 아닐까 생각됩니다.

 

1. db연동은 C에서 ODBC를 사용하듯 Java에선 JDBC를 사용합니다.

나중에는 Naming 기법을 사용해서 (분산처리 관련이나 J2EE등을 배우면 알게됩니다) 접근하겠지만

가장 간단한 테스트는 소스내에 JDBC Driver를 Load시켜서 사용하는겁니다.

Manager에게 등록시키는 방법도 있고 forName을 통해서 load시키는 방법도 있고요...

 

JDBC사용은 jre/lib/exc였나요?? 거기랑 jdk/jre/lib/exc폴더에 jdbc.jar파일을 복사해서 넣은다음 사용하는겁니다.

jdbc다운 및 설치 / 예제 소스는 인터넷에 찾으시면 널리고 널렸습니다.

 

2. ID중복체크.

보통 ID중복체크라고 한다면 쉽게말해서 동일한 ID가 db내 없어야 한다는것이고 이것을 db용어로 말하면 데이터 무결성이겠죠?

가장 처음배우는 분이라면 App소스에 db에 id값을 처음부터 끝까지 읽어 다 비교한다음 동일한 id가 있으면 오류, 없으면 correct처리하는겁니다.

하지만 이런 방법은 처음 배울때만 쓰시고 나중에 db공부를 하시면 트리거나 프로시져 배우실겁니다.

그걸 이용하셔서 db 자체로 작성하시면 되겠습니다.

 

3,6 주민등록번호 체크 및 우편번호 체크는

id 중복체크처럼 db값을 비교하는게 아니라 실제 존재하는 주민등록번호인지 우편번호인지를 확인하시는것 같습니다.

저도 아직 실무에 뛰어드는 실무자가 아닌지라 해본적은 없습니다만 해당 서비스를 제공하는 곳이 있는것으로 알고 있습니다.

그곳과 상의하시고 db를 물려주시면 되겠네요.

 

5. 프린트기능은 java.awt.print패키지내에 존재합니다.

이것역시 제겐 불필요한 기술이라 해본적은 없습니다만 찾아보면 많이 나올듯 하네요.

프린트 관련은 제가 가진 책에서는 딱 한권에 나오네요...

professional java programming이란 책이고 정보문화사가 출판사군요.

저자 brett spell, 역자에 유진희,심윤식이군요.. 혹여나 도서관같은데에 있으면 빌려서 보세요

599페이지부터 프린트 단원이네요....

 

 

 

그럼..

바꾼다던데.. 자바학원좀 알려주세요

... JAVA(JSP, MVC모델, EJB, UML, XML)+DB(ORACLE)연동의 프로젝트를 집중적으로 하면 됩니다. 자바 CBD Developer 1~7기까지... 분야 자바환경은 MIS분야에 적용되어 군사 응용 프로그램...

홈페이지 구축(제작)관련 문의드립니다.

... html, css, 자바스크립트 2. 데이터베이스, MY-SQL, MS-SQL 3.... 대하여 좀 알려주시고 2) 제가 개별적으로 프로그램은... 것이 목적이므로, 퍼미션(권한)관리DB 관리만 잘...

고3 컴퓨터관련 진로문제

... DB개발은 oracle ,sql 파트를 아셔야 가능하구요. 실제 개발자 채용공고 보시면 oracel,my-sql,ms-sql 가능자 라고 분명히 적혀있습니다. (보안전문가의 업무는 "코드분석"이기...

컴퓨터 관련(IT) 용어 20개 알려주세요

... ㅠ 간단한 컴퓨터 용어 20개 알려주세요 뜻도... 기술적으로는 자바 프로그램의 한 유형을 가르키는... Application 특별한 작업을 위해 만들어진 프로그램이다. 글...

화이트해커

... DB개발은 oracle ,sql 파트를 아셔야 가능하구요. 실제 개발자 채용공고 보시면 oracel,my-sql,ms-sql 가능자 라고 분명히 적혀있습니다. (보안전문가의 업무는 "코드분석"이기...

정보보안전문가가 되려면..어떻게...

... 프로그래밍:C,C++,자료구조,JAVA (정보처리기사,OCJP) 시스템:리눅스,유닉스(리눅스-LPIC, 유닉스-SCNA,SCSA) 네트워크:CCNA,CCNP(CCNA,CCNP R/S) DB:Oracle, MY-sql(OCP) 추가적으로 모바일...

컴퓨터관련 자격증 질문좀드립니다.

... DB개발은 oracle ,sql 파트를 아셔야 가능하구요. 실제 개발자 채용공고 보시면 oracel,my-sql,ms-sql 가능자 라고 분명히 적혀있습니다. (보안전문가의 업무는 "코드분석"이기...