관리 메뉴

moozi

5/21 컴보2A 자바 - 과제,시험관련 본문

카테고리 없음

5/21 컴보2A 자바 - 과제,시험관련

moozi 2015. 5. 21. 15:03

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.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

 

public class Student extends JFrame{
 JTextArea taList;//목록
 JTextField tfID;//아이디
 JTextField tfName; //이름
 JTextField tfDepartment; //학과
 JTextField tfAddress; //주소
 Connection conn;//연결객체
 Statement s; //스테이트먼트
 JCheckBox cbHobby1;//취미1. 독서
 JCheckBox cbHobby2;//취미2. 운동
 JCheckBox cbHobby3;//취미3. 게임
 JRadioButton rbGender1;//성별1.남
 JRadioButton rbGender2;//성별2.여
 
 //생성자
 Student(){
  try {
   Class.forName("com.mysql.jdbc.Driver");
   conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/sampledb","root","1234");
   s=conn.createStatement();
  } catch (Exception e1) {   
   e1.printStackTrace();
  }
  
  setTitle("학생관리");//타이틀
  
  Container c=getContentPane();//컨테이너생성
  c.setBackground(Color.orange);//배경색
  c.setLayout(new FlowLayout(FlowLayout.LEFT));//레이아웃설정
  
  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");
  c.add(btnSearch);
  btnSearch.addActionListener(new ActionListener(){
   @Override
   public void actionPerformed(ActionEvent arg0) {
    try{
     
     String sql="select * from student "
        +" where id='"+tfID.getText()+"'";
     ResultSet rs=s.executeQuery(sql);
     
     cbHobby1.setSelected(false);
     cbHobby2.setSelected(false);
     cbHobby3.setSelected(false);
     taList.setText("");//목록초기화
     
     taList.append("학번\t");
     taList.append("이름\t");
     taList.append("주소\t");
     taList.append("학과\n");
     taList.append("==============================================\n");
     while(rs.next()){       
      taList.append(rs.getString("id")+"\t");
      taList.append(rs.getString("name")+"\t");
      taList.append(rs.getString("address")+"\t");
      taList.append(rs.getString("dept")+"\n");
      
      tfID.setText(rs.getString("id"));
      tfName.setText(rs.getString("name"));
      tfAddress.setText(rs.getString("address"));
      tfDepartment.setText(rs.getString("dept"));
      
      if(rs.getString("hobby")!=null){
       String hobby[]=rs.getString("hobby").split("-");
       for(String h : hobby){
        if(h.equals("독서")){
         cbHobby1.setSelected(true);
        }else if(h.equals("운동")){
         cbHobby2.setSelected(true);
        }else if(h.equals("게임")){
         cbHobby3.setSelected(true);
        }
       }       
      }
     }
     
     
     rs.close();//rs종료
     
     
    }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("독서");
  cbHobby2=new JCheckBox("운동");
  cbHobby3=new JCheckBox("게임");
  c.add(cbHobby1);
  c.add(cbHobby2);
  c.add(cbHobby3);
  
  //줄바꾸기용 라벨
  c.add(new JLabel("                       "));
  
  c.add(new JLabel("성별"));
  ButtonGroup group=new ButtonGroup();
  rbGender1=new JRadioButton("남자",true);
  group.add(rbGender1);
  c.add(rbGender1);
  rbGender2=new JRadioButton("여자");
  group.add(rbGender2);
  c.add(rbGender2);
  
  taList=new JTextArea(7, 23);
  c.add(new JScrollPane(taList));
  
  JButton btnOK=new JButton("Insert");
  c.add(btnOK);
  btnOK.addActionListener(new ActionListener(){
   @Override
   public void actionPerformed(ActionEvent e) {
    if(tfName.getText().equals("")){
     JOptionPane.showMessageDialog(null, "이름을 입력하세요!", "확인", JOptionPane.WARNING_MESSAGE);
     tfName.requestFocus();//포커스
     return;//함수종료     
    }
    
    if(tfDepartment.getText().equals("")){
     JOptionPane.showMessageDialog(null, "학과를 입력하세요!", "확인", JOptionPane.WARNING_MESSAGE);
     tfDepartment.requestFocus();//포커스
     return;//함수종료     
    }
    
    if(tfAddress.getText().equals("")){
     JOptionPane.showMessageDialog(null, "주소를 입력하세요!", "확인", JOptionPane.WARNING_MESSAGE);
     tfAddress.requestFocus();//포커스
     return;//함수종료     
    }
    
    
    //취미연결하기
    String hobby="";
    if(cbHobby1.isSelected()){
     hobby+="독서-";
    }
    if(cbHobby2.isSelected()){
     hobby+="운동-";
    }
    if(cbHobby3.isSelected()){
     hobby+="게임";
    }
    
    //성별
    String gender="";
    if(rbGender1.isSelected()){
     gender="남";
    }else if(rbGender2.isSelected()){
     gender="여";
    }
    
    
    try{   
     
     String sql="insert into student(id,name,dept,address,hobby,gender) "
        +" values('"+tfID.getText()+"','"+tfName.getText()+"','"+tfDepartment.getText()+"','"+tfAddress.getText()+"','"+hobby+"','"+gender+"')";
     s.executeUpdate(sql);
     
     
     sql="select * from student";
     ResultSet rs=s.executeQuery(sql);
     
     taList.setText("");//목록초기화
     
     taList.append("학번\t");
     taList.append("이름\t");
     taList.append("주소\t");
     taList.append("학과\t");
     taList.append("취미\t");
     taList.append("성별\n");
     taList.append("==================================================================\n");
     while(rs.next()){       
      taList.append(rs.getString("id")+"\t");
      taList.append(rs.getString("name")+"\t");
      taList.append(rs.getString("address")+"\t");
      taList.append(rs.getString("dept")+"\t");
      taList.append(rs.getString("hobby")+"\t");
      taList.append(rs.getString("gender")+"\n");
     }
     rs.close();//rs종료
     
     
    }catch(Exception a){
     a.printStackTrace();
    }
    
    
    
   }});
  
  JButton btnCancel=new JButton("List");
  c.add(btnCancel);
  btnCancel.addActionListener(new ActionListener(){
   @Override
   public void actionPerformed(ActionEvent e) {
    try{
     
     /* String sql="update student set dept='그래픽' "
       +" where id='2014123412'";
     s.executeUpdate(sql); */
     
     /* String sql="delete from student "
       +" where id='2014123412'";
     s.executeUpdate(sql);
     */
     
     String sql="select * from student";
     ResultSet rs=s.executeQuery(sql);
     
     taList.setText("");//목록초기화
     
     taList.append("학번\t");
     taList.append("이름\t");
     taList.append("주소\t");
     taList.append("학과\n");
     taList.append("==============================================\n");
     while(rs.next()){       
      taList.append(rs.getString("id")+"\t");
      taList.append(rs.getString("name")+"\t");
      taList.append(rs.getString("address")+"\t");
      taList.append(rs.getString("dept")+"\n");
     }
     rs.close();//rs종료
     
     
    }catch(Exception a){
     a.printStackTrace();
    }
   }});
    
  
  
  JButton btnUpdate=new JButton("Update");
  c.add(btnUpdate);
  btnUpdate.addActionListener(new ActionListener(){

   @Override
   public void actionPerformed(ActionEvent e) {
    try{   
     
     String sql="update student set dept='"+tfDepartment.getText()+"',name='"+tfName.getText()+"',address='"+tfAddress.getText()+"',id='"+tfID.getText()+"' "
       +" where id='"+tfID.getText()+"'";
     s.executeUpdate(sql);
     
     /* String sql="delete from student "
       +" where id='2014123412'";
     s.executeUpdate(sql);
     */
     
     sql="select * from student where id='"+tfID.getText()+"'";
     ResultSet rs=s.executeQuery(sql);
     
     taList.setText("");//목록초기화
     
     taList.append("학번\t");
     taList.append("이름\t");
     taList.append("주소\t");
     taList.append("학과\n");
     taList.append("==============================================\n");
     while(rs.next()){       
      taList.append(rs.getString("id")+"\t");
      taList.append(rs.getString("name")+"\t");
      taList.append(rs.getString("address")+"\t");
      taList.append(rs.getString("dept")+"\n");
     }
     rs.close();//rs종료
     
     
    }catch(Exception a){
     a.printStackTrace();
    }
    
   }});
  
  
  JButton btnDelete=new JButton("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){
     try{   
      
      String sql="delete from student "
        +" where id='"+tfID.getText()+"'";
      s.executeUpdate(sql);
      
      sql="select * from student";
      ResultSet rs=s.executeQuery(sql);
      //입력필드초기화
      tfID.setText("");
      tfName.setText("");
      tfDepartment.setText("");
      tfAddress.setText("");
      
      taList.setText("");//목록초기화
           
      taList.append("학번\t");
      taList.append("이름\t");
      taList.append("주소\t");
      taList.append("학과\n");
      taList.append("==============================================\n");
      while(rs.next()){       
       taList.append(rs.getString("id")+"\t");
       taList.append(rs.getString("name")+"\t");
       taList.append(rs.getString("address")+"\t");
       taList.append(rs.getString("dept")+"\n");
      }
      rs.close();//rs종료
      
     }catch(Exception a){
      a.printStackTrace();
     }
    }
    
    
    
   }});
  
  
  setSize(295,370);//사이즈
  setVisible(true);//보이게하기
  setResizable(false);//사이즈고정
  //종료
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  
 }
 
 
 
 /*private class MyActionListener implements ActionListener{
  @Override
  public void actionPerformed(ActionEvent e) {
   JButton btn=(JButton)e.getSource();//클릭한버튼구하기
   if(btn.getText().equals("OK")){
    System.out.println("OK버튼이 클릭됨");
   }else if(btn.getText().equals("Cancel")){
    System.out.println("Cancel버튼이 클릭됨");
   }  
  } 
 }*/

 
 
 public static void main(String[] args) {
  new Student();//생성자호출.인스턴스생성

 }

}

Comments