JTable setValueAt not dis
To: comp.lang.java.gui
Hi,
I am new at Java programming and had run into an issue using JTables.
I created a JTable using the NetBeans IDE and am trying to set values
into the table cells using setValueAt but I don't see the new values.
I tried calling revalidate, I tried compiling the code outside of
NetBeans IDE by itself and using command line but it is the same issue
everywhere. I created a very simple program and in that setValueAt
works nicely.
Here is the code. Essentially I have the JTableTestApp which calls the
class JTableTestUI.
Thanks
Gan
----------------------
package JTableTest;
public class JTableTestApp {
/**
* @param args
*/
public static void main(String[] args) {
JTableTestApp locClass = new JTableTestApp();
locClass.TestJTableTestUI();
}
public void TestJTableTestUI(){
JTableTestUI locUI = new JTableTestUI();
locUI.CreateUI();
String data[][] = {{"Author1", "Title1"},
{"Author2", "Title2"}};
locUI.PrintTableEntries();
locUI.AddTableEntry(0, data[0][0], data[0][1]);
locUI.AddTableEntry(1, "Author2", "Title2");
locUI.PrintTableEntries();
}
}
---------------------
package JTableTest;
import javax.swing.*;
import javax.swing.table.TableModel;
public class JTableTestUI extends javax.swing.JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
/** Creates new form GDocsTestUI */
public JTableTestUI() {
initComponents();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated
Code">
private void initComponents() {
jPanel1 = new JPanel();
jTable1 = new JTable();
jScrollPane1 = new JScrollPane(jTable1);
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(null,
"Book & Author List",
javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION,
javax.swing.border.TitledBorder.DEFAULT_POSITION, new
java.awt.Font("Tahoma", 0, 11), new java.awt.Color(255, 0, 0))); //
NOI18N
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{"test", null, null},
{null, null, null},
{null, null, null},
{null, null, null}
},
new String [] {
"Author", "Title", "Selection"
}
) {
/**
*
*/
private static final long serialVersionUID = 1L;
Class[] types = new Class [] {
java.lang.String.class, java.lang.String.class,
java.lang.Boolean.class
};
boolean[] canEdit = new boolean [] {
true, true, true
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
public boolean isCellEditable(int rowIndex, int
columnIndex) {
return canEdit [columnIndex];
}
});
//jScrollPane1.setViewportView(jTable1);
javax.swing.GroupLayout jPanel1Layout = new
javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 332,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(26, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 241,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
javax.swing.GroupLayout layout = new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))
);
pack();
}// </editor-fold>
/**
* @param args the command line arguments
*/
public void CreateUI(/*String args[]*/)
{
new JTableTestUI().setVisible(true);
}
public void AddTableEntry( int nRow, String strAuthor, String
strTitle)
{
TableModel tableModel = jTable1.getModel();
tableModel.setValueAt(strAuthor, nRow, 0);
//String strAuthor1 = (String)jTable1.getValueAt(0, 0);
//System.out.println("from AddTableEntry:::" + strAuthor1);
tableModel.setValueAt(strTitle, nRow, 1);
jTable1.revalidate();
jScrollPane1.revalidate();
jPanel1.revalidate();
}
public void PrintTableEntries(){
int nRows = jTable1.getRowCount();
int nCols = jTable1.getColumnCount();
System.out.println( "Table Rows:" + nRows + " Columns:" +
nCols);
for( int nIndex = 0; nIndex < nRows; nIndex++)
{
System.out.print( "Row " + nIndex + " " +
(String)jTable1.getValueAt(nIndex,0) );
System.out.println(" " +
(String)jTable1.getValueAt(nIndex, 1));
}
}
}
----------------------
---
* Synchronet * The Whitehouse BBS --- whitehouse.hulds.com --- check it out free usenet!
--- Synchronet 3.15a-Win32 NewsLink 1.92
Time Warp of the Future BBS - telnet://time.synchro.net:24