在Java文本编辑器中创建类似Eclipse的行标记栏

时间:2011-03-28 07:47:15

标签: java swing swt scroll line

我的Java GUI应用程序包含一个可滚动的文本窗口。除了标准的滚动条,我需要一个带有彩色线标记的垂直条,就像在Eclipse中一样。希望你知道我在说什么。该条不可滚动,标记位置与整个文本的高度成比例排列。当用户单击任何标记时,文本框将滚动到相应的行。

我无法在SWT小部件套件中找到此类控件。很明显,SWT包含它。对我来说理想的选择是Swing组件,因为应用程序是基于Swing的。

非常感谢提前。

3 个答案:

答案 0 :(得分:1)

我认为没有与Swing捆绑的组件,我不知道任何提供此类组件的库,你应该能够自己做。

在滚动窗格旁边提供一个面板,每当重新渲染滚动窗格/文本窗格时,也会重新渲染该面板。然后根据行放置标记(可以是第一步中的JLabel,稍后绘制自己的并添加鼠标处理) - 在这种情况下,布局管理器应为null。

可以使用line/numlines * height(panel)计算头寸,例如对于20行100和面板高度200,标记的位置将是高度20/100 * 200像素= 40像素。

答案 1 :(得分:1)

你想要的尺子不是来自SWT。它来自jface-text插件。您要找的班级是org.eclipse.jface.text.source.CompositeRuler

答案 2 :(得分:0)

如果您还在询问,这里是一个(非免费)标记栏组件: http://www.sideofsoftware.com/marker_bar.htm