【发布时间】:2012-03-23 10:36:03
【问题描述】:
我有一个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
问题出在哪里?你能帮帮我吗?
【问题讨论】:
-
-1 如果您仍然打算坚持自己的错误,为什么还要一遍又一遍地问同一个问题?最后一次:做。不是。添加。成分。到。您的。模型!
标签: java swing jtable jprogressbar tablecellrenderer