Невозможно отобразить заголовок для jTable

Это мои коды для моего jTable в java swing.

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;
}

Я установил массив для заголовка моей таблицы. Однако программа показывает только данные внутри моей базы данных без какого-либо заголовка. Может кто-нибудь просветить меня? Заранее спасибо.


person GabrielHeng    schedule 21.12.2012    source источник
comment
код, который вы добавили в вопрос, не может помочь дать ответ. опубликовать SCCEE   -  person vels4j    schedule 21.12.2012
comment
Пожалуйста, посмотрите на этот ответ stackoverflow .com/questions/13935934/   -  person Amarnath    schedule 21.12.2012


Ответы (1)


Ставь лайк JTable в JScrollPane

add(new JScrollPane( getJTable() ) );
person vels4j    schedule 21.12.2012
comment
Я добавил их, но моя таблица не прокручивается. jTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); Скроллер JScrollPane = новый JScrollPane (jTable); scroller.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); - person GabrielHeng; 21.12.2012
comment
Да, я оборачиваю таблицу панелью прокрутки. Тогда теперь все в порядке. Теперь я собираюсь настроить ширину для каждого столбца. Спасибо всем. - person GabrielHeng; 21.12.2012