Java JProgressBar表中的动画
我有以下问题: 我有一个JTable,它向我显示命令的进度。我有两种命令。确定的和不确定的命令 如果表中只有未确定的进度条,则进度显示正确。 但是如果我有一个确定的进度条,另一个不确定的进度条就不会被激活 这是我的密码:Java JProgressBar表中的动画,java,swing,jtable,jprogressbar,Java,Swing,Jtable,Jprogressbar,我有以下问题: 我有一个JTable,它向我显示命令的进度。我有两种命令。确定的和不确定的命令 如果表中只有未确定的进度条,则进度显示正确。 但是如果我有一个确定的进度条,另一个不确定的进度条就不会被激活 这是我的密码: class ProgressBarRenderer implements TableCellRenderer { /** The bar. */ private JProgressBar bar = new JProgressBar() { p
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毫秒更新一次该表,所以不必介意。可能您有问题,基本上有两种方法
- 使用
- 使用
public class MyRenderer ....
JProgressBar determinate;
JProgressBar indeterminate;
public Component getTableCellRendererComponent(...) {
if (value.isDeterminate) {
...
return determinate;
}
....
return undeterminate
}
编辑
选中:它正在工作,但可能看起来有点奇怪,因为有许多不确定的单元格是“同步”设置的。请注意:ui委托中的内部动画状态是未记录的,因此可能存在根本不起作用的LAF(f.i.Substance,afair)。为什么有两个
返回条语句?只要确保他在将条设置为indetermoinate模式+1后返回,这将是重新分解的良好开端。原始版本太复杂、不对称和冗余,无法通过检查进行调试,至少对我来说是这样。谢谢你完美地完成了它。。。我从没想过。。。非常感谢你再次。不可能取消删除这篇文章,我多么讨厌梅塔苏,否则我坚持我关于取消删除的请求there@mKorbel不知道为什么会被删除。。。唯一的选择确实是去meta,那里总是很有趣;-)@克利奥帕特拉:-)eeeee