2016-09-24 4 views
0

Кто-нибудь знает, имеет ли jTable из jFrame лимит отображения строк? Я должен показать 9 500 000 строк в jTable, кто-то знает, возможно ли это?Максимальное количество строк, разрешенных на jtable

Мой код:

частная пустота jButton1MouseClicked (java.awt.event.MouseEvent EVT) {

 double prob; 
     Vector row = new Vector(); 
     int cont=0; 
     DefaultTableModel model = (DefaultTableModel) jTable1.getModel(); 
     for (int i = 0; i < 2; i ++) { 
      for (int j = 0; j < 4; j++){ 
       for (int k = 0; k < 4; k++){ 
        for (int l = 0; l < 3; l++){ 
         for (int m = 0; m < 4; m++){ 
          for (int n = 0; n < 4; n++){ 
           for (int o = 0; o < 3; o++){ 
            for (int p = 0; p < 4; p++){ 
             for (int q = 0; q < 4; q++) { 
              for (int r = 0; r < 2; r++){ 
               for (int s = 0; s < 4; s++){ 
                for (int t = 0; t < 4; t++){ 
                 for (int u = 0; u < 4; u++) { 
                  prob = ((pesogabinete * retornaSimGabinete(gabinetesel,gabinete.get(i))) + (pesoprocessador *(retornaSimProc(processadorsel,processador.get(j)))) + (pesomemoria * (retornaSimMem(memoriasel,memoria.get(k)))) + (pesohd * (retornaSimHd(hdsel,hd.get(l)))) + (pesossd * (retornaSimSsd(ssdsel,ssd.get(m)))) + (pesogpu * (retornaSimGpu(gpusel,gpu.get(n)))) + (pesoteclado * (retornaSimTeclado(tecladosel,teclado.get(o)))) + (pesomouse * (retornaSimMouse(mousesel,mouse.get(p)))) + (pesofonte * (retornaSimFonte(fontesel,fonte.get(q)))) + (pesorefrigeracao * (retornaSimRefrigeracao(refrigeracaosel,refrigeracao.get(r)))) + (pesomonitor * (retornaSimMonitor(monitorsel,monitor.get(s)))) + (pesoheadset * (retornaSimHeadset(headsetsel,headset.get(t)))) + (pesomotherboard * (retornaSimMotherboard(motherboardsel,motherboard.get(u)))))/(pesogabinete+pesoprocessador+pesomemoria+pesohd+pesossd+pesomouse+pesoteclado+pesogpu+pesofonte+pesorefrigeracao+pesomonitor+pesoheadset+pesomotherboard); 
                  row.add(gabinete.get(i)); 
                  row.add(processador.get(j)); 
                  row.add(memoria.get(k)); 
                  row.add(hd.get(l)); 
                  row.add(ssd.get(m)); 
                  row.add(gpu.get(n)); 
                  row.add(teclado.get(o)); 
                  row.add(mouse.get(p)); 
                  row.add(fonte.get(q)); 
                  row.add(refrigeracao.get(r)); 
                  row.add(monitor.get(s)); 
                  row.add(headset.get(t)); 
                  row.add(motherboard.get(u)); 
                  row.add(Double.toString(prob)); 
                  model.addRow (row); 
                  cont++; 
                  System.out.println(cont); 
                  row.clear(); 
                 }         
                } 
               } 
              } 
             } 
            } 
           } 

          } 
         } 
        } 
       } 
      } 
     } 
    }          


    public static void main(String args[]) { 

     java.awt.EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       new Tela().setVisible(true); 
      } 
     }); 
    } 

    // Variables declaration - do not modify      
    private javax.swing.JButton jButton1; 
    private javax.swing.JLabel jLabel1; 
    private javax.swing.JLabel jLabel10; 
    private javax.swing.JLabel jLabel11; 
    private javax.swing.JLabel jLabel12; 
    private javax.swing.JLabel jLabel13; 
    private javax.swing.JLabel jLabel14; 
    private javax.swing.JLabel jLabel2; 
    private javax.swing.JLabel jLabel3; 
    private javax.swing.JLabel jLabel4; 
    private javax.swing.JLabel jLabel5; 
    private javax.swing.JLabel jLabel6; 
    private javax.swing.JLabel jLabel7; 
    private javax.swing.JLabel jLabel8; 
    private javax.swing.JLabel jLabel9; 
    private javax.swing.JList<String> jList1; 
    private javax.swing.JList<String> jList10; 
    private javax.swing.JList<String> jList11; 
    private javax.swing.JList<String> jList12; 
    private javax.swing.JList<String> jList13; 
    private javax.swing.JList<String> jList2; 
    private javax.swing.JList<String> jList3; 
    private javax.swing.JList<String> jList4; 
    private javax.swing.JList<String> jList5; 
    private javax.swing.JList<String> jList6; 
    private javax.swing.JList<String> jList7; 
    private javax.swing.JList<String> jList8; 
    private javax.swing.JList<String> jList9; 
    private javax.swing.JScrollPane jScrollPane1; 
    private javax.swing.JScrollPane jScrollPane10; 
    private javax.swing.JScrollPane jScrollPane11; 
    private javax.swing.JScrollPane jScrollPane12; 
    private javax.swing.JScrollPane jScrollPane13; 
    private javax.swing.JScrollPane jScrollPane14; 
    private javax.swing.JScrollPane jScrollPane2; 
    private javax.swing.JScrollPane jScrollPane3; 
    private javax.swing.JScrollPane jScrollPane4; 
    private javax.swing.JScrollPane jScrollPane5; 
    private javax.swing.JScrollPane jScrollPane6; 
    private javax.swing.JScrollPane jScrollPane7; 
    private javax.swing.JScrollPane jScrollPane8; 
    private javax.swing.JScrollPane jScrollPane9; 
    private javax.swing.JTable jTable1; 
    private javax.swing.JTextField jTextField1; 
    private javax.swing.JTextField jTextField10; 
    private javax.swing.JTextField jTextField11; 
    private javax.swing.JTextField jTextField12; 
    private javax.swing.JTextField jTextField13; 
    private javax.swing.JTextField jTextField2; 
    private javax.swing.JTextField jTextField3; 
    private javax.swing.JTextField jTextField4; 
    private javax.swing.JTextField jTextField5; 
    private javax.swing.JTextField jTextField6; 
    private javax.swing.JTextField jTextField7; 
    private javax.swing.JTextField jTextField8; 
    private javax.swing.JTextField jTextField9; 
    // End of variables declaration     
} 

Ошибки показали:

at javax.swing.JTable.getValueAt(9436654 
JTable.java:2717) 

at javax.swing.plaf.basic.BasicTableUI.paintCell(9436681 
BasicTableUI.java:2114) 

at javax.swing.JComponent.paint(9436742 
JComponent.java:1056) 

at java.awt.EventDispatchThread.pumpEvents(9436957 
EventDispatchThread.java:93) 

Я считаю, что проблема заключается в row.clear() потому что, если я удалю это, код работает, но всегда показывает одно и то же значение в таблице.

ответ

1

Фактически, я не уверен, что это возможно или нет. Но вы можете проверить это. Попробуйте это (попробуйте написать код самостоятельно)

1- написать конкретную функцию, которая имеет петлю от нуля до вашего интересующего размера (скажем, 9500000). В этом цикле напишите что-то вроде строки или всего числа итераций в предопределенный выходной файл (строка за строкой).

2- то в другой функции (скажем, заполнить таблицу) читайте строку за строкой из этого файла и добавьте в таблицу новую строку. Если возможно, таблица будет заполнена, а если нет, произойдет конкретное исключение.

.......................................... Попробуйте только это

Добавить в свою рамку таблицу с точно в столбце и без строк.

для (INT I = 0; я < 1000000; я ++)

{

// здесь добавить новую строку в таблицу

// если произошла ошибка, уменьшение размера цикла.

}

+0

Я сделал это, моя проблему с функцией, которая расчистить вектор значений, которые вложат в каждой строке, я обновлю де пост. –

Смежные вопросы