2016-09-24 3 views
0

jFrame의 jTable에 표시 제한이 있는지 여부를 아는 사람이 있습니까? jTable에 9 500 000 줄을 표시해야합니다. 누군가 가능합니다.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- 0부터 원하는 크기 (예 : 9500000)까지 루프가있는 특정 기능을 작성하십시오. 이 루프에서 string 또는 반복의 num과 같은 것을 미리 정의 된 출력 파일 (줄 단위)에 씁니다.

2 그런 다음 다른 함수 (채우기 테이블)에서 해당 파일의 행을 한 행씩 읽고 새 행으로 읽은 행을 테이블에 추가하십시오. 가능한 경우 표가 채워지고 그렇지 않은 경우 특정 예외가 발생합니다.

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

정확히 열이 있고 행이없는 표를 프레임에 추가하십시오.

찾는 INT (I = 0; I < 1,000,000; I ++)

{

// 여기 표

오류가 발생 // 경우, 크기를 감소시킬 새로운 행을 추가 of 루프.

}

+0

내가이 짓을했는지, 내 문제는 내가 각 행에 넣어됩니다 값의 벡터를 취소하는 기능으로, 나는 드 게시물을 업데이트합니다. –

관련 문제