限制JScrollPane的滚动范围

时间:2012-11-15 12:34:50

标签: java swing jscrollpane jtextarea jscrollbar

我有一个JTextArea包裹在JScrollPane中,我用它来记录我的应用程序的输出。我使用文本区域大小为9的默认普通字体,滚动窗格的高度为48像素。这导致滚动窗格视图中的线条均匀分布,但是存在一个问题:如果您一直向上滚动或完全向下滚动,则会发生这种情况:

enter image description here

正如你所看到的,顶线被切断了,这就是为什么我想知道是否有限制滚动窗格的滚动范围的方法,所以它可以&#例如&# 39; t到达顶部或底部6个像素。也欢迎替代解决方案。

2 个答案:

答案 0 :(得分:2)

您可以使用从setBorder继承的方法JComponent设置自定义边框,从而更改JTextArea的边距(顶部/底部)。 documentation for JComponent建议如下:

  

虽然从技术上讲,你可以在任何对象上设置边框   继承自JComponent,许多的外观实现   标准Swing组件不适用于用户设置的边框。在   通常,当您要在标准Swing组件上设置边框时   除了JPanel或JLabel之外,我们建议您放置组件   在JPanel中并在JPanel上设置边框。

这会产生与限制滚动范围相同的结果,同时更直接。

修改

OP报告说以下解决方案对他有用:

textAreaLog.setBorder(BorderFactory.createEmptyBorder(0, 6, 0, 6));

答案 1 :(得分:2)

JTextArea放在JPanel的空白边框中,其中顶部和底部插图是6像素?