Java 如何使用Twistie设置SWT节标题的样式?
我正试图通过CSS为EclipseRCP应用程序的Java 如何使用Twistie设置SWT节标题的样式?,java,css,swt,eclipse-rcp,jface,Java,Css,Swt,Eclipse Rcp,Jface,我正试图通过CSS为EclipseRCP应用程序的部分设计一个标题 toolkit.createSection(body, Section.TITLE_BAR); 创建一个部分而不创建部分。TWISTIE我可以简单地设置部分的样式颜色: Section { color: #00ff00; } 我一添加部分.TWISTIE,颜色就不再使用了: toolkit.createSection(body, Section.TWISTIE | Section.TITLE_BAR); 因此,我开始了一些
部分设计一个标题
toolkit.createSection(body, Section.TITLE_BAR);
创建一个部分
而不创建部分。TWISTIE
我可以简单地设置部分的样式
颜色:
Section { color: #00ff00; }
我一添加部分.TWISTIE
,颜色就不再使用了:
toolkit.createSection(body, Section.TWISTIE | Section.TITLE_BAR);
因此,我开始了一些调试,并在FormColors
中找到了这一点:
private void createTwistieColors() {
RGB rgb = getColor(IFormColors.TITLE).getRGB();
RGB white = getSystemColor(SWT.COLOR_WHITE);
createColor(TB_TOGGLE, rgb);
rgb = blend(rgb, white, 60);
createColor(TB_TOGGLE_HOVER, rgb);
}
iFormColor.TITLE
是在createTitleColor()
中创建的:
没有使用CSS,如何更改节标题的颜色
示例用户界面:
我找到了一个解决方案,但仍然希望有一个仅限于CSS的解决方案:
FormColors colors = new FormColors(parent.getDisplay()) {
@Override
public void initializeSectionToolBarColors() {
super.initializeSectionToolBarColors();
// override createTwistieColors() declaration with own color
RGB rgb = new RGB(80, 80, 80);
RGB white = getSystemColor(SWT.COLOR_WHITE);
createColor(IFormColors.TB_TOGGLE, rgb);
rgb = blend(rgb, white, 60);
createColor(IFormColors.TB_TOGGLE_HOVER, rgb);
}
};
toolkit = new FormToolkit(colors);
EclipseCSS代码只调用普通类中的各种方法。如果没有设置颜色的方法,CSS就无法进行设置。
FormColors colors = new FormColors(parent.getDisplay()) {
@Override
public void initializeSectionToolBarColors() {
super.initializeSectionToolBarColors();
// override createTwistieColors() declaration with own color
RGB rgb = new RGB(80, 80, 80);
RGB white = getSystemColor(SWT.COLOR_WHITE);
createColor(IFormColors.TB_TOGGLE, rgb);
rgb = blend(rgb, white, 60);
createColor(IFormColors.TB_TOGGLE_HOVER, rgb);
}
};
toolkit = new FormToolkit(colors);