2012-04-26 40 views
0

我正在使用Netbeans,SWING將數據從mysql表中獲取到jTable。我做到了,但是桌子的標題。標題與mysql表格相同。從數據庫獲取數據後如何更改jTable的標題?Java從DB獲取數據後更改表頭文件Netbeans

P.S.

默認標題不適用於此問題。

這是自動生成的代碼:

@SuppressWarnings( 「未登記」) // 私人無效的initComponents(){ bindingGroup =新org.jdesktop.beansbinding.BindingGroup();

progressjournalPUEntityManager = java.beans.Beans.isDesignTime() ? null : javax.persistence.Persistence.createEntityManagerFactory("progressjournalPU").createEntityManager(); 
pupilsQuery = java.beans.Beans.isDesignTime() ? null : progressjournalPUEntityManager.createQuery("SELECT p FROM Pupils p"); 
pupilsList = java.beans.Beans.isDesignTime() ? java.util.Collections.emptyList() : pupilsQuery.getResultList(); 
jScrollPane1 = new javax.swing.JScrollPane(); 
jTable1 = new javax.swing.JTable(); 

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 
setTitle("Журнал успеваемости"); 
setResizable(false); 

jTable1.setModel(new javax.swing.table.DefaultTableModel(
    new Object [][] { 

    }, 
    new String [] { 
     "#", "ФИО", "Курс", "Предмет", "Оценка" 
    } 
) { 
    Class[] types = new Class [] { 
     java.lang.Integer.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class 
    }; 

    public Class getColumnClass(int columnIndex) { 
     return types [columnIndex]; 
    } 
}); 

org.jdesktop.swingbinding.JTableBinding jTableBinding = org.jdesktop.swingbinding.SwingBindings.createJTableBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, pupilsList, jTable1); 
org.jdesktop.swingbinding.JTableBinding.ColumnBinding columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${pupilMark}")); 
columnBinding.setColumnName("Pupil Mark"); 
columnBinding.setColumnClass(String.class); 
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${pupilSubject}")); 
columnBinding.setColumnName("Pupil Subject"); 
columnBinding.setColumnClass(String.class); 
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${pupilCourse}")); 
columnBinding.setColumnName("Pupil Course"); 
columnBinding.setColumnClass(String.class); 
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${pupilName}")); 
columnBinding.setColumnName("Pupil Name"); 
columnBinding.setColumnClass(String.class); 
columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${pupilId}")); 
columnBinding.setColumnName("Pupil Id"); 
columnBinding.setColumnClass(Integer.class); 
bindingGroup.addBinding(jTableBinding); 
jTableBinding.bind(); 
jScrollPane1.setViewportView(jTable1); 

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); 
getContentPane().setLayout(layout); 
layout.setHorizontalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
    .addGroup(layout.createSequentialGroup() 
     .addGap(15, 15, 15) 
     .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 616, Short.MAX_VALUE) 
     .addContainerGap()) 
); 
layout.setVerticalGroup(
    layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
    .addGroup(layout.createSequentialGroup() 
     .addContainerGap() 
     .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 275, javax.swing.GroupLayout.PREFERRED_SIZE) 
     .addContainerGap(14, Short.MAX_VALUE)) 
); 

bindingGroup.bind(); 

pack(); 

} //

而這段代碼是鎖定編輯。

+2

*「頭是在MySQL表同樣喜歡。」 *如果你希望他們不同,它們映射到這些不同的值,並使用不同的值表頭。這對我來說似乎是「不是真正的問題」。 – 2012-04-26 09:28:02

+0

除非問題是:如何更改'JTable'使用的標頭。我會發佈一個答案,然後點擊關閉按鈕 – Robin 2012-04-26 09:33:29

+0

但是我需要改變列的哪部分代碼以及如何? – Mirgorod 2012-04-26 09:42:43

回答

1

撥打電話getMetaData()您的sql ResultSetResultSetMetaData包含列名稱。列標題名稱(如行數據)從TableModel中讀取。

1

表格的標題是由TableModel#getColumnName決定,如該方法的javadoc中明確規定:

返回columnIndex列的名稱。這用於初始化該表的列頭名