Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Eclipse插件打印到控制台的超链接_Java_Eclipse_Plugins_Hyperlink_Console - Fatal编程技术网

Java Eclipse插件打印到控制台的超链接

Java Eclipse插件打印到控制台的超链接,java,eclipse,plugins,hyperlink,console,Java,Eclipse,Plugins,Hyperlink,Console,我想在eclipse插件中打印到控制台的超链接 我看到了,但是调用myconsole.addHyperlink(fileLink,10,5)时得到了BadLocationException。我发现类PatternMatchEvent有getLength()和getOffset()我需要MessageConsole.addHyperlink() 使用上述链接中的方法是否仍然是实现这一点的方法(该问题是在大约12年前提出的),如果是,我如何继续使用这些方法? 感谢您的帮助 您只能在实现已作为模式匹配

我想在eclipse插件中打印到控制台的超链接

我看到了,但是调用myconsole.addHyperlink(fileLink,10,5)时得到了
BadLocationException
。我发现类
PatternMatchEvent
getLength()
getOffset()
我需要
MessageConsole.addHyperlink()

使用上述链接中的方法是否仍然是实现这一点的方法(该问题是在大约12年前提出的),如果是,我如何继续使用这些方法?

感谢您的帮助

您只能在实现已作为模式匹配侦听器添加到控制台的
IPatternMatchListener
的类中使用
PatternMatcherEvent

如果您没有使用侦听器,那么您必须通过搜索控制台文本来找到要放置超链接的位置的偏移量

您应该能够通过以下方式获取控制台文本:

IDocument document=myConsole.getDocument();
String text=document.get();
查找要用于链接的文本:

字符串超链接文本=。。。。要将超链接添加到的文本。。。
int offset=text.indexOf(超链接文本);
如果找到文本,请添加链接:

if(偏移量>=0){
myconsole.addHyperlink(fileLink,offset,hyperlinkText.length());
}

PatternMatcherEvent
仅在为
IPatternMatchListener生成的事件中可用-是否使用模式匹配侦听器?否则,您必须通过查看控制台文本来确定位置。感谢您的快速响应!我没有使用模式匹配侦听器。你能更详细地解释一下“通过查看控制台文本确定位置”的含义吗?您的意思是确定要打印的超链接的长度吗?那么偏移量呢?addHyperlink调用会在控制台中添加指向现有文本的链接(它不会添加新文本)。必须在链接的现有文本中指定偏移量和长度。通过查看现有的Eclipse源代码,此调用的每次使用实际上都是在模式匹配侦听器中。@greg-449您有任何链接,我可以在其中找到有关偏移量(例如,从何处开始…)和长度的更多信息吗?我绝望了。我所要做的就是打印一个超链接到一个我知道存在并从
L/
开始的文件。为什么我首先需要一个
IPatternMatchListener
?我在听什么?我通过
MessageConsoleStream.println()
打印到我的控制台。文本出现在插件控制台中,但当我调用
String text=myConsole.getDocument().get()时之后,我得到一个空字符串。我相信控制台每秒只更新几次,而不是立即更新。非常感谢!我现在让它工作了。我想打印10行,然后将它们全部超链接。你有什么建议要等多久我才能确定所有这些线路都已更新?理想情况下,我希望在写完它们后尽快将它们链接起来。我尝试了
MessageConsoleStream.flush()
,但也没有成功。只要文档是空的,我就可以用while循环阻塞,但我认为这不是一个好主意。