【发布时间】:2012-03-19 19:01:52
【问题描述】:
我有以下问题:
我有一个显示命令进度的 JTable。我有两种命令。确定和不确定的命令。
如果我在表中只有不确定的进度条,则进度显示正确。 但如果我有一个确定的进度条,另一个不确定的将不会被动画。
这是我的代码:
class ProgressBarRenderer implements TableCellRenderer {
/** The bar. */
private JProgressBar bar = new JProgressBar() {
public boolean isDisplayable() {
return true;
};
};
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
ProgressBarInfo pbi = (ProgressBarInfo) value;
if (pbi.getType() == Progress.LS) {
if (pbi.getValue() == -1) {
bar.setIndeterminate(false);
bar.setValue(0);
bar.setString("Progress ended");
} else {
bar.setIndeterminate(true);
bar.setString(pbi.getValue() + " " + pbi.getText());
}
bar.setStringPainted(true);
return bar;
} else if (pbi.getType() == Progress.SCP) {
if (pbi.getValue() == -1) {
bar.setIndeterminate(false);
bar.setValue(0);
bar.setString("Progress ended");
} else {
bar.setValue(pbi.getValue());
bar.setString(pbi.getValue() + "% " + pbi.getText());
}
bar.setIndeterminate(false);
bar.setStringPainted(true);
}
return bar;
}
}
表格由 swingworker 线程每 10 毫秒更新一次,所以不要介意。
【问题讨论】:
-
为什么有两个
return bar语句? -
只是为了确保他在将栏设置为不确定模式后返回
标签: java swing jtable jprogressbar