主题仅限于:在NetBeans RCP应用程序中加载服务的查找
我有一个名为WordFilter
的服务提供商,我有一个包含 2个按钮的GUI,第一个用于大写文本区域的内容,第二个用于小写它(点击时) 。
对于每个按钮,我附加了一个实现我的服务提供商的服务;第一个是UpperCaseFilter
,第二个是LowerCaseFilter
。
一个按钮的操作代码是:
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
String enteredText = text.getText();
Collection<? extends WordFilter> allFilters = Lookup.getDefault().lookupAll(WordFilter.class);
StringBuilder sb = new StringBuilder();
for (WordFilter textFilter : allFilters) {
String processedText = textFilter.process(enteredText);
sb.append(processedText).append("\n");
}
text.setText(sb.toString());
}
当我点击Button2
(用于小写)时,两个动作同时运行,我想检查要运行哪个实例,因为allFilters
给了我两个实例
答案 0 :(得分:0)
由于您已实施了两项服务UpperCaseFilter
和LowerCaseFilter
,因此您可以在查找过程中单独使用这些过滤器。
EX:转换为大写的动作方法
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
{
String enteredText = text.getText();
UpperCaseFilter uFilter = (UpperCaseFilter)Lookup.getDefault().lookup(UpperCaseFilter.class)
StringBuilder sb = new StringBuilder();
String processedText = uFilter.process(enteredText);
sb.append(processedText).append("\n");
text.setText(sb.toString());
}