2

在我使用 NETBEANS 可视 GUI 制作 JTable 的 JTable 中需要时如何插入值以及如何在运行时增加行?

     text_jTable = new javax.swing.JTable();

 text_jTable.setFont(new java.awt.Font("Arial Unicode MS", 0, 11)); // NOI18N

 text_jTable.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
    {null, null, null, null, null},
    {null, null, null, null, null},
    {null, null, null, null, null},
    {null, null, null, null, null},
    {null, null, null, null, null}
 },
new String [] {
    "#", "Start Time", "End Time", "Duration", "Text"
 }
 ) {
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];
}
    });

text_jTable.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_ALL_COLUMNS);

      text_jTable.setColumnSelectionAllowed(true);

   text_jTable.setEnabled(false);

 text_jTable.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);

 text_jTable.getTableHeader().setReorderingAllowed(false);

 jScrollPane1.setViewportView(text_jTable);

 text_jTable.getColumnModel().getSelectionModel().setSelectionMode(javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
text_jTable.getColumnModel().getColumn(0).setResizable(false);
text_jTable.getColumnModel().getColumn(1).setResizable(false);
text_jTable.getColumnModel().getColumn(2).setResizable(false);
text_jTable.getColumnModel().getColumn(3).setResizable(false);

通过 netbeans 可视化 GUI 创建 JTable 后,我无法理解如何在运行时增加行数..

4

1 回答 1

4

获取表的表模型,将其转换为DefaultTableModel,并使用其addRow()方法之一:

DefaultTableModel model = (DefaultTableModel) text_jTable.getModel();
model.addRow(theDataOfTheNewRow);

了解 JTable 的工作原理及其模型的作用是至关重要的。如果您不了解它生成的代码以及如何使用它生成的组件,则不应使用可视化 GUI 设计器。

Swing 教程是了解 Swing 工作原理的非常好的(免费)资源。

于 2012-04-29T18:09:38.817 回答