2014-07-18 2 views
0

안녕하세요, 저는 작동하지만 작동하지 않는 코드를 JTable에서 업데이트했습니다.새로 고침 JTable 항목

try { 
     insertRows(); 
    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

invTable.setAutoCreateRowSorter(true); 
invTable.setBorder(javax.swing.BorderFactory.createEtchedBorder()); 
invTable.setModel(modelx); 
invTable.getTableHeader().setReorderingAllowed(false); 

insertRows는 양식이 시작될 때 호출되며 내 데이터베이스의 행으로 공백 테이블을 채 웁니다.

나는 데이터베이스에 새 항목을 추가하는 추가 단추에이 코드를 추가하려고 시도했습니다.

modelx.fireTableDataChanged(); 

하지만 내 테이블은 업데이트되지 않습니다. 어떻게 제대로 업데이트 할 수 있습니까? 당신의 modelx.fireTableDataChanged(); 데이터베이스에 새 항목을 추가,

private void insertRows() throws SQLException, Exception{ 
     modelx = new DefaultTableModel(); 
     modelx.addColumn("Name"); 
     modelx.addColumn("ID"); 
     modelx.addColumn("Weight"); 
     modelx.addColumn("Doctor"); 
     modelx.addColumn("Supplier"); 
     modelx.addColumn("Department"); 
     modelx.addColumn("Cost"); 
     modelx.addColumn("Price"); 
     modelx.addColumn("Quantity"); 
     modelx.addColumn("Threshold"); 
           Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 

       database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=D:\\floresClinic.accdb;"; 
     conn = DriverManager.getConnection(database, "", ""); 
     s = conn.createStatement(); 
       rs = s.executeQuery("SELECT * FROM medItem "); 
       int cou = 0; 
        while(rs.next()) 
        { 
            s1 = rs.getString("productName"); 
            s2 = rs.getString("productID"); 
            s3 = rs.getString("productWeight"); 
            s4 = rs.getString("doctor"); 
            s5 = rs.getString("sName"); 
            s6 = rs.getString("department"); 
            s7 = rs.getString("unitCost"); 
            s8 = rs.getString("unitPrice"); 
            s9 = rs.getString("quantity"); 
            s0 = rs.getString("threshold"); 
            if(!s1.equals("1")){ 
            modelx.insertRow(0, new Object [] {s1, s2, s3, s4, s5, s6, s7, s8, s9, s0}); 
            //String[] itemize ={s1,s2,s3,s4,s5,s5,s7,s8,s9,s0}; 
            //System.out.println(s1+s2); 
            //modelx.addRow(itemize); 

            } 
          cou++; 
        } 

    } 
+2

입니다 내부 사용만을위한 것입니다. [문제를 나타내는 실행 가능한 예제] (https://stackoverflow.com/help/mcve)를 제공하는 것을 고려하십시오.이 작업은 추측이 적고 더 나은 응답을 생성합니다. – MadProgrammer

답변

1

당신이 언급 한 바와 같이, 그런데 왜 당신의 JTable입니다 데이터베이스에서 그 값을 검색하기 위해 더 이상 코드가 없습니다 : 여기

는 insertRows에 대한 내 코드()입니다 어떤 값으로도 채워지지 않습니다!

데이터베이스에서 JTable의 값을 검색하는 메소드를 작성해야합니다.

또한 insertRows(); 코드를 표시하지 않았습니다.

당신의 JTable를 사용하여 도움을받을 수 및 데이터베이스 연결하기위한 유용한 링크이는, 당신은 모델의 외부`TableModel`의`fireXxx` 방법 중 하나를 호출했다해서는 안

JTable and Database

관련 문제