2012-12-21 99 views
1

这些是我的代码为我的jTable在java swing中。无法显示标题jTable

private JTable getJTable() { 
    if (jTable == null) { 
     Vector columnNames = new Vector(); //Vector class allows dynamic array of objects 
     Vector data = new Vector(); 
     JPanel panel = new JPanel(); 
     panel.setSize(new Dimension(198, 106)); 

     try { 
      DBController db = new DBController(); 
      db.setUp("IT Innovation Project"); 
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance(); 
      String dsn = "IT Innovation Project"; 
      String s = "jdbc:odbc:" + dsn; 
      Connection con = DriverManager.getConnection(s, "", ""); 
      String sql = "Select * from forumTopics"; 
      java.sql.Statement statement = con.createStatement(); 
      ResultSet resultSet = statement.executeQuery(sql); 
      ResultSetMetaData metaData = resultSet.getMetaData(); 
      int columns = metaData.getColumnCount(); 

      for (int i = 1; i <= columns; i++) { 
       columnNames.addElement(metaData.getColumnName(i)); 
      } 

      while (resultSet.next()) { 
       Vector row = new Vector(columns); 
       for (int i = 1; i <= columns; i++) { 
        row.addElement(resultSet.getObject(i)); 
       } 
       data.addElement(row); 
      } 

      resultSet.close(); 
      ((Connection) statement).close(); 
     } catch (Exception e) { 
      System.out.println(e); 
     } 

     jTable = new JTable(data, columnNames); 
     TableColumn column; 

     for (int i = 0; i < jTable.getColumnCount(); i++) { 
      column = jTable.getColumnModel().getColumn(i); 
      column.setMaxWidth(250); 
     } 

     String header[] = {"description", "title", "category", "posted by"}; 

     for(int i=0;i<jTable.getColumnCount();i++) { 
      TableColumn column1 = jTable.getTableHeader().getColumnModel().getColumn(i);  
      column1.setHeaderValue(header[i]); 
     } 

     jTable.setBounds(new Rectangle(82, 218, 736, 292)); 
     jTable.setEnabled(false); 
     jTable.setRowHeight(50); 
     jTable.getRowHeight();   
    } 
    return jTable; 
} 

我为我的表的标题设置了一个数组。但是,该程序只显示我的数据库内没有任何标题的数据。有人可以请赐我吗?提前致谢。

+2

代码。后[SCCEE](http://sscce.org) – vels4j

+0

请看看这个答案http://stackoverflow.com/questions/13935934/java-jtable-column-headers-not-showing/13936925#13936925 – Amarnath

回答

3

把你JTableJScrollPane像您已在问题不能帮助加入到提供答案

add(new JScrollPane(getJTable())); 
+0

我添加这些但我的桌子不滚动。 jTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); JScrollPane Scroller = new JScrollPane(jTable);}}}}} \t \t \t scroller.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_​​ALWAYS); – GabrielHeng

+0

标题现在可见? – vels4j

+0

是的,我用滚动窗格包装表。那么现在一切都很好。现在我要调整每列的宽度。谢谢大家。 – GabrielHeng