0

私はNetbeans、SWINGを使用してmysqlテーブルからjTableにデータを取得しています。やりましたが、テーブルのヘッダー。ヘッダーは mysql テーブルと同じです。DBからデータを取得した後にjTableのヘッダーを変更するには?

PS

この問題では、デフォルトのヘッダーは機能しません。

これは自動生成されたコードです:

@SuppressWarnings("unchecked") // プライベート void initComponents() { bindingGroup = new 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();

}//

そして、このコードは編集のためにロックされています。

4

2 に答える 2

1

getMetaData()あなたの sql を呼び出しますResultSet。にはResultSetMetaData列名が含まれます。列ヘッダー名は (行データと同様に) から読み取られますTableModel

于 2012-04-26T09:33:45.453 に答える
1

TableModel#getColumnNameそのメソッドの javadoc で明確に述べられているように、テーブルのヘッダーは によって決定されます。

columnIndex にある列の名前を返します。これは、テーブルの列ヘッダー名を初期化するために使用されます

于 2012-04-26T09:34:39.803 に答える