Article View: borland.public.jbuilder.java.swing
Article #12006JTable rendering SLOW !
From: Jaco Oosthuyzen
Date: Mon, 08 Mar 1999 00:00
Date: Mon, 08 Mar 1999 00:00
110 lines
4422 bytes
4422 bytes
I create a JTable exactly as per example, except that it is displayed in
a JFrame, on a JScrollPane.
It takes at least 5-10 seconds to repaint, and hogs 100% of CPU for this
period.
Please help ?
Thanks
final String[] names = {"First Name", "Last Name", "Favorite
Color",
"Favorite Number", "Vegetarian"};
final Object[][] data = {
{"Mark", "Andrews", "Red", new Integer(2), new Boolean(true)},
{"Tom", "Ball", "Blue", new Integer(99), new Boolean(false)},
{"Alan", "Chung", "Green", new Integer(838), new Boolean(false)},
{"Jeff", "Dinkins", "Turquois", new Integer(8), new Boolean(true)},
{"Amy", "Fowler", "Yellow", new Integer(3), new Boolean(false)},
{"Brian", "Gerhold", "Green", new Integer(0), new Boolean(false)},
{"James", "Gosling", "Pink", new Integer(21), new Boolean(false)},
{"David", "Karlton", "Red", new Integer(1), new Boolean(false)},
{"Dave", "Kloba", "Yellow", new Integer(14), new Boolean(false)},
{"Peter", "Korn", "Purple", new Integer(12), new Boolean(false)},
{"Phil", "Milne", "Purple", new Integer(3), new Boolean(false)},
{"Dave", "Moore", "Green", new Integer(88), new Boolean(false)},
{"Hans", "Muller", "Maroon", new Integer(5), new Boolean(false)},
{"Rick", "Levenson", "Blue", new Integer(2), new Boolean(false)},
{"Tim", "Prinzing", "Blue", new Integer(22), new Boolean(false)},
{"Chester", "Rose", "Black", new Integer(0), new Boolean(false)},
{"Ray", "Ryan", "Gray", new Integer(77), new Boolean(false)},
{"Georges", "Saab", "Red", new Integer(4), new Boolean(false)},
{"Willie", "Walker", "Phthalo Blue", new Integer(4), new
Boolean(false)},
{"Kathy", "Walrath", "Blue", new Integer(8), new Boolean(false)},
{"Arnaud", "Weber", "Green", new Integer(44), new Boolean(false)}
};
// Create a model of the data.
TableModel dataModel = new AbstractTableModel()
{
// These methods always need to be implemented.
public int getColumnCount() { return names.length; }
public int getRowCount() { return data.length;}
public Object getValueAt(int row, int col) {return
data[row][col];}
// The default implementations of these methods in
// AbstractTableModel would work, but we can refine them.
public String getColumnName(int column) {return
names[column];}
public Class getColumnClass(int c)
{
System.out.println ("getValueAt(0,"+c+")="+getValueAt(0,
c));
System.out.println
("getValueAt(0,"+c+").class="+getValueAt(0, c).getClass());
return getValueAt(0, c).getClass();
}
public boolean isCellEditable(int row, int col) {return
true;}
public void setValueAt(Object aValue, int row, int column)
{
data[row][column] = aValue;
}
};
//Create the table
JTable tableView = new JTable(dataModel);
if (dictFrm == null)
dictFrm = new DictFrame();
dictFrm.addTable(tableView);
dictFrm.show();
public class DictFrame extends JFrame
{
JScrollPane jScrollPane1 = null;
public DictFrame()
{
try
{
jbInit();
}
catch (Exception e)
{
e.printStackTrace();
}
}
private void jbInit() throws Exception
{
this.setSize(new Dimension(590, 436));
}
public void addTable(JTable jTable1)
{
if (jScrollPane1 == null)
jScrollPane1 = JTable.createScrollPaneForTable(jTable1);
this.getContentPane().add(jScrollPane1, BorderLayout.CENTER);
jTable1.getTableHeader().setReorderingAllowed(true);
jScrollPane1.getViewport().add(jTable1, null);
this.repaint();
}
}
Technical Details
Message-ID:
<36E3AE7F.EB03126@prosol.co.za>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 111d45,a7ea9724dde6fd05,start X-Google-Attributes: gid111d45,public From: Jaco Oosthuyzen <jaco@tk.co.za> Subject: JTable rendering SLOW ! Date: 1999/03/08 Message-ID: <36E3AE7F.EB03126@prosol.co.za> X-Deja-AN: 452527106 Content-Transfer-Encoding: 7bit Organization: Another Netscape Collabra Server User Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 Newsgroups: borland.public.jbuilder.java.swing