Java 如何向PatternFilter中的文本添加粗体

Java 如何向PatternFilter中的文本添加粗体,java,swt,jface,Java,Swt,Jface,我创建了TreeViewer和PatternFilter PatternFilter patternFilter = new PatternFilter(); FilteredTree filter = new FilteredTree(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL, patternFilter, true); treeViewer = filter.getViewer(); treeViewer.setContentProvi

我创建了
TreeViewer
PatternFilter

PatternFilter patternFilter = new PatternFilter();
FilteredTree filter = new FilteredTree(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL, patternFilter, true);
treeViewer = filter.getViewer();

treeViewer.setContentProvider(new TreeContentProvider());
treeViewer.setLabelProvider(new TreeLabelProvider());
treeViewer.setAutoExpandLevel(AbstractTreeViewer.ALL_LEVELS);
treeViewer.setInput(Activator.getDefault().getTreeModel());

Tree tree = treeViewer.getTree();
如何将粗体文本添加到过滤器的文本结果中


与Eclipse中首选项对话框中的过滤器类似,Eclipse首选项使用相同的
FilteredTree
。知道这一点,从这里开始很容易

快速切换到
FilteredTree
,并按住CTRL+F键组合文本
bold

第一个结果是这种方法:

/**
 * Return a bold font if the given element matches the given pattern.
 * Clients can opt to call this method from a Viewer's label provider to get
 * a bold font for which to highlight the given element in the tree.
 * 
 * @param element
 *            element for which a match should be determined
 * @param tree
 *            FilteredTree in which the element resides
 * @param filter
 *            PatternFilter which determines a match
 * 
 * @return bold font
 */
public static Font getBoldFont(Object element, FilteredTree tree, PatternFilter filter) 
如果我们搜索它的使用位置,就会找到
org.eclipse.ui.internal.dialogs.PreferenceBoldLabelProvider

在标签提供程序中使用相同的技巧



编辑1:如前所述,我希望您有足够的经验,知道不要使用内部类,而是通过扩展
LabelProvider
(在本例中)来调整它们并创建自己的类。

Eclipse首选项使用相同的
FilteredTree
。知道这一点,从这里开始很容易

快速切换到
FilteredTree
,并按住CTRL+F键组合文本
bold

第一个结果是这种方法:

/**
 * Return a bold font if the given element matches the given pattern.
 * Clients can opt to call this method from a Viewer's label provider to get
 * a bold font for which to highlight the given element in the tree.
 * 
 * @param element
 *            element for which a match should be determined
 * @param tree
 *            FilteredTree in which the element resides
 * @param filter
 *            PatternFilter which determines a match
 * 
 * @return bold font
 */
public static Font getBoldFont(Object element, FilteredTree tree, PatternFilter filter) 
如果我们搜索它的使用位置,就会找到
org.eclipse.ui.internal.dialogs.PreferenceBoldLabelProvider

在标签提供程序中使用相同的技巧



编辑1:如前所述,我希望您有足够的经验,知道不要使用内部类,而应该通过扩展
LabelProvider
(在本例中)来调整它们并创建自己的类.

但请注意,
首选项BoldLabelProvider
位于内部软件包中,因此不应实际使用,并且可能会在未经通知的情况下更改。您是如何找到性能的类别的?您在quick trip pus prrss cntrl F中的意思是什么?您是如何找到静态方法的BoldFont@user1365697我逐字逐句地解释了我生活中的每一步回答。。。我碰巧知道Eclipse首选项使用了
FilteredTree
。我通过按CTRL+SHIFT+T进入了
FilteredTree
,搜索文本“bold”使用CTRL+F。我就是这样找到它的。但是请注意,
PreferenceBoldLabelProvider
是在一个内部包中,因此不应该真正使用,并且可能会在没有通知的情况下更改。您是如何找到性能的类的?您在quick trip pus prrss cntrl F中的意思是什么BoldFont@user1365697我逐字逐句地解释了我答案中的每一步。。。我碰巧知道Eclipse首选项使用了
FilteredTree
。我按CTRL+SHIFT+T进入了
FilteredTree
,然后用CTRL+F搜索文本“bold”。我就是这样找到的。