2016-09-24 3 views
0

jFrameのjTableに行の表示制限があるかどうかを知っていますか?私はjTableに9 500 000行を表示する必要があります、誰かがこれが可能かどうか知っていますか?jtableで許可される最大番号行

マイコード:

ます。private void 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次に別の関数(たとえば塗りつぶしテーブル)でそのファイルから1行ずつ読み込み、読み取られた行をテーブルに追加します。 可能であれば、テーブルは塗りつぶされ、そうでない場合は特定の例外が発生します。

..........................................

正確に列上に行がないテーブルをフレームに追加します。

がため(INT i = 0; I < 1000000; I ++)

{

//ここで表に

は、エラーが発生した//場合は、サイズを小さくし、新しい行を追加ofループ。

+0

私はこの問題を解決しました。私の問題は、各行に入れる値のベクトルをクリアする機能であり、私はポストを更新します。 –

関連する問題