Java JScrollPane

2025年2月12日 | 阅读 5 分钟

JScrollPane 是 Java 中的 Swing 组件,它提供了另一个组件的可滚动视图,通常是 JTextArea、JTable、JList 或任何其他实现 Scrollable 接口的组件。当组件的内容超出可见区域时,JScrollPane 的滚动条允许用户滚动以查看所有内容。

构造函数

构造函数目的
JScrollPane()创建一个空的(没有视口视图)JScrollPane,其中水平和垂直滚动条在需要时出现。
JScrollPane(Component)创建一个 JScrollPane,它显示指定组件的内容,其中水平和垂直滚动条在组件的内容大于视图时出现。
JScrollPane(int, int)创建一个空的(没有视口视图)JScrollPane,具有指定的滚动条策略。
JScrollPane(Component, int, int)创建一个 JScrollPane,它在视口中显示视图组件,该视口的位置可以通过一对滚动条进行控制。

有用的方法

修饰符方法描述
voidsetColumnHeaderView(Component)如有必要,创建一个列标题视口,设置其视图,然后将列标题视口添加到滚动窗格中。
voidsetRowHeaderView(Component)如有必要,创建一个行标题视口,设置其视图,然后将行标题视口添加到滚动窗格中。
voidsetCorner(String, Component)添加一个子组件,它将出现在滚动窗格的角之一,如果空间足够。
组件getCorner(String)返回指定角的组件。
voidsetViewportView(Component)如有必要,创建一个视口,然后设置其视图。

JScrollPane 示例

JScrollPaneExample.java

输出

Java JScrollpane

窗口外观

屏幕上将出现一个标题为“滚动窗格示例”的窗口。

大小和可见性

窗口的宽度为 500 像素,高度为 500 像素,由 frame.setSize(500, 500); 语句设置。 由于 frame.setVisible(true); 语句,它将在屏幕上可见。

布局

在窗口内部,您将看到一个具有 20 行和 20 列的 JTextArea 组件。 此 JTextArea 包装在 JScrollPane 中,当内容超出可见区域时,它提供滚动功能。 窗口内部组件的布局由 FlowLayout 管理器管理,该管理器以从左到右、从上到下的方式排列组件。

滚动条可见性

JScrollPane 的水平和垂直滚动条将始终可见。

内容交互

我们可以通过在其中键入文本来与 JTextArea 进行交互。 如果我们添加的文本多于一次可以在 JTextArea 中显示的文本,滚动条将变为活动状态,允许我们水平和垂直滚动以查看所有内容。

示例: ScrollPaneExample.java

输出

Java JScrollpane
Java JScrollpane
  • 当我们运行该程序时,将出现一个标题为“ScrollPane Example”的窗口。
  • 在窗口内部,您将看到一个带有大量文本的 JTextArea。 该文本包含 100 行,每行包含文本“Line”,后跟行号(例如,“Line 0”、“Line 1”、...、“Line 99”)。
  • 由于 JTextArea 包含的文本多于一次可以在窗口中显示的文本,因此水平和垂直滚动条都将出现在 JScrollPane 中。 这些滚动条允许我们滚动浏览文本以查看所有文本。
  • 我们可以水平滚动以查看长文本行,我们可以垂直滚动以查看所有 100 行文本。
  • JFrame 自动调整其大小以适合 JScrollPane 的首选大小,而 JScrollPane 的首选大小又由 JTextArea 的首选大小和窗口的大小决定。

示例 2: ScrollPaneExample.java

输出

Java JScrollpane
Java JScrollpane

窗口外观

当我们运行该程序时,将出现一个标题为“ScrollPane Example”的窗口。

内容显示

在窗口内部,我们将看到一个带有某些初始文本的 JTextArea。 此文本显示在 JScrollPane 的主要内容区域中,并且设置为允许水平和垂直滚动。

列标题

在 JScrollPane 的顶部,将有一个 JLabel 作为列标题。 在此示例中,标签显示“列标题”。

行标题

在 JScrollPane 的左侧,将有一个 JLabel 作为行标题。 在此示例中,标签显示“行标题”。

角组件

  • 左上角: 标记为“角按钮”的 JButton 将显示在 JScrollPane 的左上角。
  • 右下角: 具有红色背景的 JPanel 将显示在 JScrollPane 的右下角。 此面板充当右下角组件。

滚动条

如果 JTextArea 的大小超出 JScrollPane 的可见区域,则将出现滚动条(水平和垂直),以允许滚动浏览内容。

框架大小

JFrame 会自动调整其大小以适合 JScrollPane 的首选大小,该大小由其组件(JTextArea、列和行标题以及角组件)的首选大小决定。


下一个主题Java JSplitPane