2016-09-22 80 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

即使在你已经提供的字符串[]列的链接中也只用到了。你能建议其他的改变吗? –