我一直想知道为什么我们需要 JFace TableViewers 的 ContentProviders?我知道ContentProvider类的getElements()方法将返回与表上的行相对应的对象数组或集合,当我们在表上时将调用 getElements 。但我的问题会更具体..setInput(input)
getElements 返回一个数组或对象集合,相反,我可以编写自己的方法来返回一个对象数组,然后在表查看器的实例上执行 setInput ,对吗?
有人可以就我们为什么需要 ContentProviders 给我一个不太技术但简短而令人满意的答案吗?如果没有 ContentProviders,如果我尝试在表上设置输入,那么什么也不会显示......所以当谈到 JFace 时,ContentProvider 和 LabelProvider 是必须的......
具体用途是ColumnViewerTooltipSupport什么?我知道它提供了工具提示支持,ColumnViewers但它是否意味着它为treeViewers提供了工具提示?当鼠标悬停在每个项目上时,如何使用此功能为每个树项目提供工具提示支持单独的不同工具提示?我是否需要MouseListener这个或ColumnViewerTooltipSupport默认情况下课程提供吗?有人可以帮助我,因为我对SWT概念比较陌生.
我的工具提示有多行,如何包装文本并整齐地显示?ColumnViewerToolTipSupport如果文本太长,似乎类不会包装工具提示文本.我想使用带有垂直滚动条的工具提示窗口,就像eclipse中的InformationControl Windows一样?如果像日食这样的东西是不可能的,那么只需要一个包含文本的工具提示窗口.
请给我看一个示例代码段?
双击树项完全正常,但当我按下键盘上的CTRL + M然后树项展开\折叠,有人可以告诉我这背后的原因吗?这是Eclipse中的错误还是为什么当我按CTRL + M时会触发此双击功能.
谢谢.
我需要一个正则表达式来替换所有特殊字符,考虑用单个下划线考虑多个,并且如果字符串包含尾随和前导特殊字符,也不要添加尾随和前导下划线,我已经尝试了以下方法,但它似乎不起作用。
String myDefaultString = "_@##%Default__$*_123_"
myDefaultString.replaceAll("[\\p{Punct}&&[^_]]", "_")
Run Code Online (Sandbox Code Playgroud)
我的最终结果应该是Default_123正则表达式需要考虑前导下划线并删除它们,将下划线保留在中间Default,而且123还应该删除字符串之间的尾随和多个下划线。
还尝试了以下正则表达式
myDefaultString.replaceAll("[^a-zA-Z0-9_.]+", "_")
Run Code Online (Sandbox Code Playgroud)
但似乎不起作用,我想要实现的目标是否非常复杂,或者有更好的方法吗?