Mau*_*uli 9 java swt eclipse-rcp
我需要能够在TableViewer/TreeViewer中为行提供闪烁(红色,可能更多颜色)的背景.什么是最好的选择?
可能有多个行闪烁,闪烁必须是同步的,我需要两个闪烁模式,快速和慢速.
您应该有一个类似于这样的结构:
LinkedList<Row> rows = new LinkedList<Row>();
Thread blinker = null;
public void start() {
blinker = new Thread() {
public void run() {
while(!this.interrupted()) {
try {
synchronized (rows) {
for (Row row : rows) {
row.setForegroundColor(color1);
}
}
Thread.sleep(500);
synchronized (rows) {
for (Row row : rows) {
row.setForegroundColor(color2);
}
}
Thread.sleep(500);
} catch (InterruptException e) {
break;
}
}
}
};
blinker.start();
}
public void stop() {
if (blinker != null) {
blinker.interrupt();
}
}
public void add(Row row) {
synchronized (rows) {
if (!rows.contains(row)) {
rows.add(row);
}
}
}
public void remove(Row row) {
synchronized (rows) {
rows.remove(row);
}
}
Run Code Online (Sandbox Code Playgroud)
当Shell
显示时,它应该调用start()
. 当它处置时,请致电stop()
。
请注意,我还没有实际测试过这一点;这是一些 Javaish 伪代码。如果您无法按照setForegroundColor()
上面的建议设置行颜色,您也许可以引入一个小部件并定义一个paint()
事件。
归档时间: |
|
查看次数: |
4029 次 |
最近记录: |