2016-09-22 79 views
0

我創建一個基於swing的認證系統,我有一個表格,希望打印一些必要的細節,並希望最後一列有一個複選框。即使給一個布爾值後,其打印真的還是假的,而不是一個複選框JTable中的JCheckbox

   controlPanel.removeAll(); 
       System.out.println("coming1"); 
       JournalApprovalClass JAC = new JournalApprovalClass(); 
       JournalApproval JA = new JournalApproval(); 

       String[] columns = { "Author1", "Author2", "Author3", 
         "Author4", "Author5", "Author6", "Title", 
         "JournalName", "Scopus", "ImpactFactor", 
         "JournalMonth", "JournalYear", "NamePublisher", 
         "VolumeIssuePageNo", "BtechMtech", "OtherDetails", 
         "Approval" }; 
       System.out.println("coming2"); 

       try { 
        JA.adminApprovalJournalApproval(); 
       } catch (ClassNotFoundException e1) { 
        // TODO Auto-generated catch block 
        e1.printStackTrace(); 
       } catch (SQLException e1) { 
        // TODO Auto-generated catch block 
        e1.printStackTrace(); 
       } 
       System.out.println("coming3"); 
       DefaultTableModel model = new DefaultTableModel(
         journalTable.values2, columns); 
       JTable journalAdminApprovalTable = new JTable(model); 

       journalAdminApprovalTable 
         .setPreferredScrollableViewportSize(new Dimension(
           1200, 100)); 
       journalAdminApprovalTable.setFillsViewportHeight(true); 
       TableColumn column = null; 
       for (int i = 0; i <= 16; i++) { 
        column = journalAdminApprovalTable.getColumnModel() 
          .getColumn(i); 
        column.setPreferredWidth(50); 
        if (i == 16) { 
         column.setPreferredWidth(10); 
        } 

       } 
       System.out.println("coming4"); 
       JScrollPane scrollPane = new JScrollPane(
         journalAdminApprovalTable); 
       controlPanel.add(scrollPane); 
       controlPanel.revalidate(); 
       controlPanel.repaint(); 
       System.out.println("coming5"); 

這是我想創建創建數據對象在另一個類

   ma.values[0] = au.Author1; 
       ma.values[1] = au.Author2; 
       ma.values[2] = au.Author3; 
       ma.values[3] = au.Author4; 
       ma.values[4] = au.Author5; 
       ma.values[5] = au.Author6; 
       ma.values[6] = au.Title; 
       ma.values[7] = au.JournalName; 
       ma.values[8] = au.Scopus; 
       ma.values[9] = au.ImpactFactor; 
       ma.values[10] = au.JournalMonth; 
       ma.values[11] = au.JournalYear; 
       ma.values[12] = au.NamePublisher; 
       ma.values[13] = au.VolumeIssuePageNo; 
       ma.values[14] = au.BtechMtech; 
       ma.values[15] = au.OtherDetails; 
       ma.values[16] = new Boolean(true); 
       /*if (au.AdminApproval == "NO") { 
        ma.values[16] = new JCheckBox("Approval"); 
       } else 
        ma.values[16] = new Boolean(true);*/ 
       ma.values1[i] = new Object[17]; 
       ma.values1[i] = ma.values; 

       System.out.println(ma.values1[i] + " " + ma.values[0] + " " 
         + i); 
       i++; 
      } 
      resultSet.next(); 
     } 
     journalTable.values2 = new Object[i][]; 
     for (int j = 0; j < i; j++) 
      journalTable.values2[j] = journalTable.values1[j]; 
     return; 

創建的表一切工作正常,但我想要的東西是總是檢查複選框(背後的原因是真實的)。 當我運行的代碼,我得到以下輸出

last column i need a checkbox

回答

0

這是因爲你的模型上運行的字符串,而不是對象。我無法運行你的代碼,但如果我是你,我會:

  1. 嘗試改變String[] columnsObject[] columns
  2. 如果 沒有幫助,看看this
+0

非常感謝。我會研究它,讓你知道 –

+0

即使在你已經提供的字符串[]列的鏈接中也只用到了。你能建議其他的改變嗎? –