Possible Duplicate:
Adding multiple JProgressBar to TableColumn of JTable
i have a jTable
with a DefaultTableModel
with this coloumn:
String String JProgressBar
and every row is created like this:
progress.add(getProgress(x, total));
d.addRow(new Object[]{category, "Initializing..", progress.get(work)});
Where getProgress is:
private JProgressBar getProgress(int x, int total) {
JProgressBar progressCsv = new JProgressBar();
progressCsv.setMaximum(totale);
progressCsv.setStringPainted(true);
progressCsv.setString("0%");
return progressCsv;
}
And progress:
progress = new ArrayList<JProgressBar>();
My class implements TableCellRenderer so
@Override
public Component getTableCellRendererComponent(JTable jtable, Object o, boolean bln, boolean bln1, int i, int i1) {
int v = Integer.parseInt(o.toString());
JProgressBar b = (JProgressBar) jtable.getModel().getValueAt(i, i1);
b.setValue(v);
return null;
}
Where i
and i1
are 0 - 2. so the first row and third coloum ( JProgressBar ).
On: JProgressBar b = (JProgressBar) jtable.getModel().getValueAt(i, i1); i get
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.Integer cannot be cast to javax.swing.JProgressBar
Where is the problem? can you help me?
if you use ArrayList you could :
public Component getTableCellRendererComponent(JTable jtable, Object o, boolean bln, boolean bln1, int i, int i1) {
int v = Integer.parseInt(o.toString());
JProgressBar b = progress.get(i);
b.setValue(v);
return b;
}