【问题标题】:Creating Eclipse-like line markers bar in Java text editor在 Java 文本编辑器中创建类似 Eclipse 的行标记栏
【发布时间】:2011-03-28 07:47:15
【问题描述】:

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

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

提前非常感谢。

【问题讨论】:

  • 我对 Eclipse 不太熟悉。可以加个截图吗?我想我可以给你示例代码来实现你所描述的。
  • 对不起,我没有足够的声誉来附上照片。也许链接会起作用:andrewsavory.com/~savs/editors/images/eclipse_screenshot.png - 请参阅编辑器右边缘的蓝色标记。

标签: java swing swt scroll line


【解决方案1】:

我不认为 Swing 捆绑了一个组件,我不知道有任何库提供这样的组件,但你应该可以自己做。

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 如何在 Swing 应用程序中使用此类或插件?
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-04
      • 1970-01-01
      • 1970-01-01
      • 2013-03-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多