본문 바로가기
TechNical/JAVA

keiTool Version 1.0 이라고 하기에는 뭐시기한...;;

by 강멍멍이 2009. 1. 2.
반응형

뭐.. 지금껏 많이 한건 없지만.. 그걸 조금씩 조금씩 업글 하는 중입니다. ㅎㅎ
이번에꺼는 페널을 써서 크기를 조절해도 input 박스 크기가 상하로는 그대로 있는 거군요.
테이블에 데이터 뿌려 주는 형식도 바꿔 봤어요. 무식하게 어레이 200씩 잡아 놓고 하는건..
200개 넘어가면 보이지도 않고.. 보기에도 흉하지요..
덤으로 컬럼 길이도 지정해 주었고~ 근데 이넘은 크기가 변하니까 비율로 올라가는지.. 쩝 ㅡㅡ
그리고 메뉴도 붙여 봤습니다.. 으하하하...;; 여기저기서 훔쳐다가... ㅋㅋ
이거로 조금쓱 조금쓱 하다가 보면은 뭔가 튀어 나오겠지요 ^^;; 이래저래 공부도 되구요 ㅋ
혹시 아나여.. 멋진 녀석이 나올지.. 그럴리가...-_-
목표를 세우지 않고서는 암것두 하지 않는 다능... ㅠ.ㅠ;;

[ keiTool.java ]

import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
import java.awt.event.*;
import java.sql.*;

public class keiTool extends JFrame {
 
 private JMenuBar Menubar;
 private JMenu mFile;
 private JMenuItem mNew, mExit;
 private JTextField text1;
 private DefaultTableModel model;
 
 public static void main(String[] args) {
  new keiTool();
 }
 
 public keiTool() {
  // 프레임 기본 설정
  setTitle("KeiTool - Version 1.0");
  setPreferredSize(new Dimension(400,600));
  setLocation(500,400);
 
  // 메뉴바
  setJMenuBar(Menubar = new JMenuBar());  
  Menubar.add(mFile   = new JMenu("Menu"));
 
  mFile.add(mNew    = new JMenuItem("New"));  
  mFile.add(mExit   = new JMenuItem("Exit"));  
  mFile.insertSeparator(1);
   
  mNew.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent ae){          
    int count = model.getRowCount();
       for(int i = 0 ; i < count ; i++){
         model.removeRow(0);       
       }
       text1.setText("");
   }
  });
 
  mExit.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent ae){    
    System.exit(0);
   }
  });  
 
  // 프레임 내부
  Container contentPane = getContentPane();
 
  // 테이블 헤더
  String colName[] = {"Seq","CDID","CDNM"};
  model = new DefaultTableModel(colName,0);
  JTable table = new JTable(model);
 
  // 컬럼 길이 조정(컬럼을 몽땅 기술해 줘야 먹힌다)
  table.getColumnModel().getColumn(0).setPreferredWidth(8);
  table.getColumnModel().getColumn(1).setPreferredWidth(20);  
  table.getColumnModel().getColumn(2).setPreferredWidth(272);
 
  contentPane.add(new JScrollPane(table),BorderLayout.CENTER);
 
  // 캡션, 인풋박스, 검색 버튼
  JPanel panel = new JPanel();    
 
  text1 = new JTextField(20);
  JButton button1 = new JButton("Search");    
 
  panel.add(new JLabel("CDID - "));
  panel.add(text1);
  panel.add(button1);  
 
  contentPane.add(panel,BorderLayout.NORTH);
 
  button1.addActionListener(new AddActionListener(table,text1));
  text1.addActionListener(new AddActionListener(table,text1));

  // 닫기
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   pack();
    setVisible(true);
 }
 
 public static class AddActionListener implements ActionListener{
 
  JTable table;
  JTextField text1;
  AddActionListener(JTable table, JTextField text1) {
     this.table = table;
     this.text1 = text1;   
  }
  
   public void actionPerformed(ActionEvent e){  
   
   DefaultTableModel model = (DefaultTableModel) table.getModel();
   int count = model.getRowCount();
      for(int i = 0 ; i < count ; i++){
        model.removeRow(0);       
      }
   
   String data[] = new String[3];
   Connection con=null;
            Statement stmt=null;
            ResultSet rs=null;
            try {
            Class.forName("oracle.jdbc.driver.OracleDriver");                        
               con = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:kei", "kei", "kei");
               stmt = con.createStatement();
               rs = stmt.executeQuery("select a,b from test where con =" + "'" + text1.getText().trim().toUpperCase() + "'");
              // rs = stmt.executeQuery(text1.getText().trim().toUpperCase());
               int i = 0;
               while(rs.next()) {                 
            
                data[0] = String.valueOf(i + 1);
                  data[1] = rs.getString(1);
                  data[2] = rs.getString(2);                
              
      model.addRow(data);
            
                  i++;
               }
            }
            catch(Exception ex) {System.out.println(ex);}
            finally {
                     try {
                             if (con != null)
                             {
                              con.close();     
                             }
                     }
                     catch (Exception ex){}
            }
   
  } 
 }
 
}

반응형

댓글