관리 메뉴

moozi

5/19 컴보2C 자바 본문

카테고리 없음

5/19 컴보2C 자바

moozi 2015. 5. 19. 15:50

import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

 


public class Swing1 extends JFrame{
 JTextArea ta; //목록
 JTextField tfName; //이름
 JTextField tfID; //아이디
 JTextField tfDepartment; //학과
 JTextField tfAddress; //주소
 JCheckBox cbHobby1; //취미. 독서
 JCheckBox cbHobby2; //취미. 운동
 JCheckBox cbHobby3; //취미. 게임
 
 Connection conn; //커넥션
 
 Swing1(){
  try{
   Class.forName("com.mysql.jdbc.Driver");//드라이버로드
   conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/sampledb","root","1234");
  }catch(Exception e){
   e.printStackTrace();
  }
  
  setTitle("회원관리");//타이틀 
  
  
  
  Container c = getContentPane();
  c.setLayout(new FlowLayout(FlowLayout.LEFT));//레이아웃지정.플로우레이아웃
  c.setBackground(Color.orange);//배경색지정.  
  
  c.add(new JLabel("이름"));
  tfName=new JTextField(20);
  c.add(tfName);
  
  c.add(new JLabel("학번"));
  tfID=new JTextField(13);
  c.add(tfID);
  
  JButton btnSearch=new JButton("Search"); //Search버튼
  c.add(btnSearch);
  btnSearch.addActionListener(new ActionListener(){

   @Override
   public void actionPerformed(ActionEvent e) {
    try{
     System.out.println("연결됨");
     Statement sm=conn.createStatement();
     
     ResultSet rs=sm.executeQuery("select * from student where id='"+tfID.getText()+"'");//select실행
     
     ta.setText("");//초기화
     ta.append("학번"+"\t");
     ta.append("이름"+"\t");
     ta.append("학과"+"\t");
     ta.append("주소"+"\t");
     ta.append("취미"+"\n");
     ta.append("===========================================================\n");
     while(rs.next()){ //다음 행으로 커서 이동. 데이터가 있으면 true,없으면 false
      ta.append(rs.getString("id")+"\t");
      ta.append(rs.getString("name")+"\t");
      ta.append(rs.getString("dept")+"\t");
      ta.append(rs.getString("address")+"\t");
      ta.append(rs.getString("hobby")+"\n");
      
      tfID.setText(rs.getString("id"));
      tfName.setText(rs.getString("name"));
      tfDepartment.setText(rs.getString("dept"));
      tfAddress.setText(rs.getString("address"));
      
      String hobby[]=rs.getString("hobby").split("-");//'-'기준으로 분할
      for(String s : hobby){
       if(s.equals("독서")){
        cbHobby1.setSelected(true);
       }else if(s.equals("운동")){
        cbHobby2.setSelected(true);
       }else if(s.equals("게임")){
        cbHobby3.setSelected(true);
       }
      }
     }
     rs.close();//레코드셋닫기
    }
    catch(Exception a){
     a.printStackTrace();
    }
    
   }});
  
  
  c.add(new JLabel("학과"));  
  tfDepartment=new JTextField(20);
  c.add(tfDepartment);
  
  c.add(new JLabel("주소"));
  tfAddress=new JTextField(20);
  c.add(tfAddress);
  
  c.add(new JLabel("취미"));
  cbHobby1=new JCheckBox("독서");
  c.add(cbHobby1);
  cbHobby2=new JCheckBox("운동");
  c.add(cbHobby2);
  cbHobby3=new JCheckBox("게임");
  c.add(cbHobby3);
  
  ta=new JTextArea(5,23);//5 rows, 23 columns
  c.add(new JScrollPane(ta));//스크롤적용해서 TextArea생성
  
  JButton btnOK=new JButton("Insert");// ok버튼
  c.add(btnOK);//OK버튼추가
  btnOK.addActionListener(new ActionListener(){
   @Override
   public void actionPerformed(ActionEvent e) {
    /*System.out.println(cbHobby1.isSelected());
    System.out.println(cbHobby2.isSelected());
    System.out.println(cbHobby3.isSelected());*/
    
    String hobbys[]=",".split(",");
    System.out.println(hobbys.length);
    for(String s : hobbys){
     System.out.println(s);
    }
    
    if(tfName.getText().equals("")){
     JOptionPane.showMessageDialog(null, "이름을 입력하세요!", "알림", JOptionPane.ERROR_MESSAGE);
     tfName.requestFocus();//포커스
     return;//함수종료.더이상실행안됨
    }
    
    if(tfDepartment.getText().equals("")){
     JOptionPane.showMessageDialog(null, "학과를 입력하세요!", "알림", JOptionPane.ERROR_MESSAGE);
     tfDepartment.requestFocus();//포커스
     return;//함수종료.더이상실행안됨
    }
    
    if(tfAddress.getText().equals("")){
     JOptionPane.showMessageDialog(null, "주소를 입력하세요!", "알림", JOptionPane.ERROR_MESSAGE);
     tfAddress.requestFocus();//포커스
     return;//함수종료.더이상실행안됨
    }
    
    String hobby="";
    if(cbHobby1.isSelected()){
     hobby+="독서-";
    }
    if(cbHobby2.isSelected()){
     hobby+="운동-";
    }
    if(cbHobby3.isSelected()){
     hobby+="게임";
    }
        
    try{  
     System.out.println("연결됨");
     Statement sm=conn.createStatement();
     String sql="insert into student(id,name,dept,address,hobby) "
       + "values('"+tfID.getText()+"','"+tfName.getText()+"','"+tfDepartment.getText()+"','"+tfAddress.getText()+"','"+hobby+"')";
     sm.executeUpdate(sql);//insert문 실행
     
     ResultSet rs=sm.executeQuery("select * from student");//select실행
     ta.setText("");//초기화
     ta.append("학번"+"\t");
     ta.append("이름"+"\t");
     ta.append("학과"+"\t");
     ta.append("주소"+"\n");
     ta.append("===========================================\n");
     while(rs.next()){ //다음 행으로 커서 이동. 데이터가 있으면 true,없으면 false
      ta.append(rs.getString("id")+"\t");
      ta.append(rs.getString("name")+"\t");
      ta.append(rs.getString("dept")+"\t");
      ta.append(rs.getString("address")+"\n");   
     }
     rs.close();//레코드셋닫기
    }
    catch(Exception a){
     a.printStackTrace();
    }
    
    
    
    
    
    
   }});//리스너추가
  
  JButton btnCancel=new JButton("Update");// Update버튼
  c.add(btnCancel);//버튼추가
  btnCancel.addActionListener(new ActionListener(){

   @Override
   public void actionPerformed(ActionEvent e) {
    if(tfName.getText().equals("")){
     JOptionPane.showMessageDialog(null, "이름을 입력하세요!", "알림", JOptionPane.ERROR_MESSAGE);
     tfName.requestFocus();//포커스
     return;//함수종료.더이상실행안됨
    }
    
    if(tfDepartment.getText().equals("")){
     JOptionPane.showMessageDialog(null, "학과를 입력하세요!", "알림", JOptionPane.ERROR_MESSAGE);
     tfDepartment.requestFocus();//포커스
     return;//함수종료.더이상실행안됨
    }
    
    if(tfAddress.getText().equals("")){
     JOptionPane.showMessageDialog(null, "주소를 입력하세요!", "알림", JOptionPane.ERROR_MESSAGE);
     tfAddress.requestFocus();//포커스
     return;//함수종료.더이상실행안됨
    }
    
    try{
     System.out.println("연결됨");
     Statement sm=conn.createStatement();
     String sql="update student set name='"+tfName.getText()+"', dept='"+tfDepartment.getText()+"', address='"+tfAddress.getText()+"' where id='"+tfID.getText()+"'";
       
     sm.executeUpdate(sql);//insert문 실행
     
     ResultSet rs=sm.executeQuery("select * from student");//select실행
     ta.setText("");//초기화
     ta.append("학번"+"\t");
     ta.append("이름"+"\t");
     ta.append("학과"+"\t");
     ta.append("주소"+"\n");
     ta.append("===========================================\n");
     while(rs.next()){ //다음 행으로 커서 이동. 데이터가 있으면 true,없으면 false
      ta.append(rs.getString("id")+"\t");
      ta.append(rs.getString("name")+"\t");
      ta.append(rs.getString("dept")+"\t");
      ta.append(rs.getString("address")+"\n");   
     }
     rs.close();//레코드셋닫기
    }
    catch(Exception a){
     a.printStackTrace();
    }
    
    
   }});//리스너추가
  
  
  JButton btnDelete=new JButton("Delete");//Delete버튼
  c.add(btnDelete);
  btnDelete.addActionListener(new ActionListener(){

   @Override
   public void actionPerformed(ActionEvent e) {
    int result=JOptionPane.showConfirmDialog(null, "삭제하시겠습니까?","확인",JOptionPane.YES_NO_OPTION);
    if(result==JOptionPane.YES_OPTION){//YES버튼을 누른경우
     try{
      
      System.out.println("연결됨");
      Statement sm=conn.createStatement();
      String sql="delete from student where id='"+tfID.getText()+"'";
        
      sm.executeUpdate(sql);//insert문 실행
      
      ResultSet rs=sm.executeQuery("select * from student");//select실행
      ta.setText("");//초기화
      ta.append("학번"+"\t");
      ta.append("이름"+"\t");
      ta.append("학과"+"\t");
      ta.append("주소"+"\n");
      ta.append("===========================================\n");
      while(rs.next()){ //다음 행으로 커서 이동. 데이터가 있으면 true,없으면 false
       ta.append(rs.getString("id")+"\t");
       ta.append(rs.getString("name")+"\t");
       ta.append(rs.getString("dept")+"\t");
       ta.append(rs.getString("address")+"\n");   
      }
      rs.close();//레코드셋닫기
      //텍스트필드 초기화
      tfID.setText("");
      tfName.setText("");
      tfDepartment.setText("");
      tfAddress.setText("");
     }
     catch(Exception a){
      a.printStackTrace();
     }
    }
    
    
    
    
    
   }});
  
  
  JButton btnList=new JButton("List");
  c.add(btnList);
  btnList.addActionListener(new ActionListener(){

   @Override
   public void actionPerformed(ActionEvent e) {
    //select문 실행
    try{
     
     System.out.println("연결됨");
     Statement sm=conn.createStatement();
     ResultSet rs=sm.executeQuery("select * from student");//select실행
     ta.setText("");//초기화
     ta.append("학번"+"\t");
     ta.append("이름"+"\t");
     ta.append("학과"+"\t");
     ta.append("주소"+"\n");
     ta.append("===========================================\n");
     while(rs.next()){ //다음 행으로 커서 이동. 데이터가 있으면 true,없으면 false
      ta.append(rs.getString("id")+"\t");
      ta.append(rs.getString("name")+"\t");
      ta.append(rs.getString("dept")+"\t");
      ta.append(rs.getString("address")+"\n");   
     }
     rs.close();//레코드셋닫기
    }
    catch(Exception a){
     a.printStackTrace();
    }
   }});
  
  
  setSize(305, 320);//가로,세로 사이즈
  setVisible(true);//보이도록함
  //setResizable(false);//화면크기고정
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//종료
  
 } 
 
 
 public static void main(String[] args) {
  new Swing1();//생성자호출
 }

}

Comments