Java 在TreeViewer中为特定项目的前景着色
我试图只在JFace树满足条件时为其前景着色。我正在实现Java 在TreeViewer中为特定项目的前景着色,java,user-interface,swt,jface,Java,User Interface,Swt,Jface,我试图只在JFace树满足条件时为其前景着色。我正在实现IColorProvider接口并实现getForegroundColor(对象元素) 我试图通过将断点放在第二个if中进行调试,但它没有进入if子句。在检查它是否是实例后,是否应该尝试转换到计划?顺便说一句:使用后,你必须dispose()颜色。我试过了,但它不起作用。我没有说这是一个解决方案。这只是关于良好编程技术的建议。如果您的代码未通过,请选择哪个?Outer还是inner?inner if子句不能通过,我不知道代码是什么样子,但根
IColorProvider
接口并实现getForegroundColor(对象元素)
我试图通过将断点放在第二个if中进行调试,但它没有进入if子句。在检查它是否是
实例后,是否应该尝试转换到计划?顺便说一句:使用后,你必须dispose()
颜色。我试过了,但它不起作用。我没有说这是一个解决方案。这只是关于良好编程技术的建议。如果您的代码未通过,请选择哪个?Outer还是inner?inner if子句不能通过,我不知道代码是什么样子,但根据方法名称,这:schedule.getBeginEffectiveDate().equals(schedule.getEndEffectiveDate())
对我来说没有意义,因为两者都使用相同的schedule
实例。
@Override
public Color getForeground(Object element)
{
// TODO Auto-generated method stub
Device device = getTreeViewer().getTree().getDisplay();
Color color = new Color(device, 162, 82, 82);
Schedule schedule = (Schedule) element;
if (element instanceof Schedule)
{
if (schedule.getBeginEffectiveDate().equals(schedule.getEndEffectiveDate()) && schedule.getRecurrenceType().getName().equalsIgnoreCase("Once"))
{
return color;
}
}
return null;
}