簡體   English   中英

Java從數據庫錯誤設置數據到JTable

[英]Java setting data to JTable from database error

當我嘗試以這種方式從表中的數據庫中顯示數據時:

    void AddOrderToTable(JTable projectTable) throws SQLException
{
    zadanie=connect.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
    sql="SELECT * FROM Orders ;";
    dane=zadanie.executeQuery(sql);
    int n=0;
    while (dane.next())
    {
    uzsakNr=dane.getString("Uzsakymo_nr");
    if (uzsakNr != null) {uzsakNr = uzsakNr.trim();}
    priemDat=dane.getString("Priemimo_data");
    if (priemDat != null) {priemDat = priemDat.trim();}
    irengPav=dane.getString("Irenginio_pavadinimas");
    if (irengPav != null) {irengPav = irengPav.trim();}
    model=dane.getString("Modelis");
    if (model != null) {model = model.trim();}
    tip=dane.getString("Tipas");
    if (tip != null) {tip = tip.trim();}
    serial=dane.getString("Serijinis_nr");
    if (serial != null) {serial = serial.trim();}
    priedai=dane.getString("Priedai");
    if (priedai != null) {priedai = priedai.trim();}
    giedAprasy=dane.getString("Gedimo_aprasymas");
    if (giedAprasy != null) {giedAprasy = giedAprasy.trim();}
    status=dane.getString("Statusas");
    if (status != null) {status = status.trim();}
    grazDat=dane.getString("Grazinimo_data");
    if (grazDat != null) {grazDat = grazDat.trim();}
    pastabos=dane.getString("Pastabos");
    if (pastabos != null) {pastabos = pastabos.trim();}
    prieme=dane.getString("Prieme");
    if (prieme != null) {prieme = prieme.trim();}
    clientId=dane.getString("ClientId");
    if (clientId != null) { clientId =  clientId.trim();}


    projectTable.setValueAt(uzsakNr, n, 0);
    projectTable.setValueAt(priemDat, n, 1);
    projectTable.setValueAt(irengPav, n, 2);
    projectTable.setValueAt(model, n, 3);
    projectTable.setValueAt(status, n, 4);
    projectTable.setValueAt(clientId, n, 5);
    n++;
    }
    zadanie.close();
}

我收到錯誤

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
at java.util.Vector.elementAt(Vector.java:432)
at javax.swing.table.DefaultTableColumnModel.getColumn(DefaultTableColumnModel.java:276)
at javax.swing.JTable.convertColumnIndexToModel(JTable.java:1812)
at javax.swing.JTable.setValueAt(JTable.java:1926)
at GetFromDb.AddOrderToTable(GetFromDb.java:195)
at Remontas.newItemMenuItem_2_actionPerformed(Remontas.java:754)
at Remontas$NewItemMenuItem_2ActionListener.actionPerformed(Remontas.java:710)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.AbstractButton.doClick(AbstractButton.java:302)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1051)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1092)
at java.awt.Component.processMouseEvent(Component.java:5517)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
at java.awt.Component.processEvent(Component.java:5282)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3984)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3819)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1791)
at java.awt.Component.dispatchEvent(Component.java:3819)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

哪里有問題?

問題是表模型在您獲得任何數據之前嘗試顯示。 如果尚未加載源數據,則需要處理該條件,而不是嘗試訪問仍為null的對象。

請注意, ResultSet列的編號為1,而JTable列的編號為0。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM