【问题标题】:Java how to display line number on the right side of text componentsJava如何在文本组件右侧显示行号
【发布时间】:2015-05-17 03:35:44
【问题描述】:

我想在文本组件中显示行号。我找到了这个链接 https://tips4java.wordpress.com/2009/05/23/text-component-line-number/ 它奏效了。但我想在 textarea 的右侧显示行号。我该怎么做。谢谢!

【问题讨论】:

  • 你必须修改它,使它成为可选的。 paintComponent 方法被硬编码以假设数字在左侧(并且如所写,它似乎没有为数据提供 set/get 方法以允许在不修改现有代码的情况下进行扩展)。
  • JScrollPane 本身不支持此功能。您将不得不使用 JideScrollPane 之类的东西
  • 对于一个复杂的example

标签: java jtextarea line-numbers rights


【解决方案1】:

TextLineNumber 是一个 Swing 组件。如何在滚动窗格中显示多个组件?您将组件添加到面板,然后将面板添加到滚动窗格的视口。一种方法可能是使用带有 BorderLayout 的面板:

JPanel panel = new JPanel( new BorderLayout() );
panel.add(textArea, BorderLayout.CENTER);
TextLineNumber lineNumber = new TextLineNumber(textArea, 3);
panel.add(lineNumber, BorderLayout.EAST);
JScrollPane scrollPane = new JScrollPane( panel );

或者您可以使用现有代码并更改滚动窗格的方向:

scrollPane.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);

行号将在右侧,但滚动条现在将在左侧。

【讨论】:

  • 非常感谢! scrollPane.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);它对我有用! :)。这就是我想要的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-15
  • 1970-01-01
  • 1970-01-01
  • 2020-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多