我有一个jTable
与DefaultTableModel
这个coloumn:
String String JProgressBar
并且每一行都是这样创建的:
progress.add(getProgress(x, total));
d.addRow(new Object[]{category, "Initializing..", progress.get(work)});
getProgress 在哪里:
private JProgressBar getProgress(int x, int total) {
JProgressBar progressCsv = new JProgressBar();
progressCsv.setMaximum(totale);
progressCsv.setStringPainted(true);
progressCsv.setString("0%");
return progressCsv;
}
和进展:
progress = new ArrayList<JProgressBar>();
我的班级实现了 TableCellRenderer 所以
@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;
}
其中i
和i1
是 0 - 2。所以第一行和第三列( JProgressBar )。
开:JProgressBar b = (JProgressBar) jtable.getModel().getValueAt(i, i1); 我明白了
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.Integer cannot be cast to javax.swing.JProgressBar
问题出在哪里?你能帮助我吗?