본문 바로가기
TechNical/JAVA

DB에 데이터를 끌어다가 JTable 에 뿌려 보자.

by 강멍멍이 2008. 10. 17.
반응형

으으으.. 와방무식한거 같아.. ㅠ.ㅠ
내가 원하는 대로 구현이 안 되는 이 안타까움.. 어찌하오리까... =ㅇ=
옛날 코드를 긁어다가 테스트를 하면서 발생했던 문제점..
show() 메서드가 옛날꺼라서 컴파일 할때 뭐시기 뭐시기라고 경고가 나왔었는데
이 놈을 setVisible() 로 바꿔주니까 잘 된다능...
f.repaint()  이놈을 액숀이 발생할때 마다 호출 할려고 조기 안에 넣었는데 첨에는 안 된다 그랬어.
근데 JFrame 선언할때 final을 붙여 주니까 잘 되네? 흠흠.. 아직은 뭐가 뭔지 모르겠어 ㅠ.ㅠ
이런 개념도 없이 만들고 보는 구나 ㅋㅋ

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.JTable;
import javax.swing.border.*;
import java.sql.*;

public class Default_JTable extends JFrame {
 
 // 테이블 헤더 데이터
 public String[] col_name={"COL1","COL2"};
 
 // 테이블에 포함될 데이터
 public Object[][] data = new Object[50][2];
 
 JTextField name;
 
 // 생성자
 public Default_JTable() {
  final JFrame f = new JFrame();
     Container cp = f.getContentPane();
          
  cp.setLayout(new FlowLayout());
  name = new JTextField("",10);
  name.setCaretColor(Color.blue);
  cp.add(new JLabel("검색조건 : "));        
        cp.add(name);
 
  name.addActionListener( new ActionListener()
                      {
                           public void actionPerformed(ActionEvent ae) {
                              for ( int j = 0 ; j < 50 ; j++ )
               {
             data[j][0] = "";
             data[j][1] = "";
            }
                              dataGet();
                              f.repaint();
                          }                         
                      }                     
            );
  JTable table=new JTable(data,col_name);
  JScrollPane scrollPane = new JScrollPane(table);
  cp.add(scrollPane, BorderLayout.CENTER);  
 
  f.setSize(500, 500);   
        f.setVisible(true);     
 }
 
 public static void main(String[] args) {  
  Default_JTable default_JTable1 = new Default_JTable();
 }
 
 public void dataGet() {
            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:orcl", "scott", "tiger");
               stmt = con.createStatement();
               rs = stmt.executeQuery("select col1,col2 from mytable where cond =" + "'" + name.getText().trim() + "'");
               int i = 0;
               while(rs.next()) {                 
                  data[i][0] = rs.getString("col1");
                  data[i][1] = rs.getString("col2");
                  i++;
               }                           
              
            }
            catch(Exception e) {System.out.println(e);}
            finally {
                     try {
                             if (con != null)
                             {
                              con.close();     
                             }
                     }
                     catch (Exception e){}
            }
        }
}

반응형

댓글