`

Java swing 如何让垂直滚动条始终在最下面

阅读更多

1Java swing 如何让垂直滚动条始终在最下面 

(1)JTextPane

见图说话: 

 
上图中箭头所指的是一个JTextPane 

JTextPane 被包在JScrollPane 中

//执行结果显示窗口
        resultTextPane = new AssistPopupTextPane();
        resultTextPane.setContentType("text/html; charset=UTF-8");
        resultTextPane.setEditable(false);
        DefaultCaret caret = (DefaultCaret)resultTextPane.getCaret();
        caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);


        scrollPane.setViewportView(resultTextPane);

 

在接收到推送消息时,JTextPane中的内容会动态的增加,增加到一定程度,会产生垂直滚动条,那么如何使垂直滚动条始终保持在JTextPane 最底部呢? 
这样就永远可以看到最新的推送消息了. 
实现: 
(1)设置JTextPane 的策略

DefaultCaret caret = (DefaultCaret)resultTextPane.getCaret();
        caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);

 

(2)当JTextPane 动态增加内容时

resultTextPane.setSelectionStart(resultTextPane.getText().length());
        JScrollBar vertical = scrollPane.getVerticalScrollBar();
        vertical.setValue( vertical.getMaximum());

 说明: 

resultTextPane 的类型是JTextPane; 

 

(2)JTextArea

resultTextArea = new AssistPopupTextArea();
		resultTextArea.setEditable(false);
		resultTextArea.setLineWrap(true);
		resultTextArea.setWrapStyleWord(true);
		DefaultCaret caret = (DefaultCaret)resultTextArea.getCaret();
        caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
		scrollPane.setViewportView(resultTextArea);
		resultTextArea.setColumns(10);

 DefaultCaret caret = (DefaultCaret)resultTextArea.getCaret();

        caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);

 


注意:JTextPane和JTextArea的区别: 
JTextPane 可以设置html样式; 
JTextArea无法设置成为html样式

 

项目采用maven 构建 
源代码下载地址
项目源代码

依赖的jar包
依赖包

------2016-12-12 ------- 

 

/***
     * 使滚动条处于底部(贴底)
     * @param requestPanel
     */
    public static void scroll2bottom(final RequestPanel requestPanel) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    Thread.sleep(300);
                } catch (InterruptedException e1) {
                    e1.printStackTrace();
                }
                requestPanel.scroll2Bottom();
            }
        }).start();
    }

 

  • 大小: 81.8 KB
6
2
分享到:
评论

相关推荐

    Java swing 如何让垂直滚动条始终在最下面-附件资源

    Java swing 如何让垂直滚动条始终在最下面-附件资源

    swing中的滚动条.doc

    `JScrollPane`有两个主要的滚动条组件:垂直滚动条(Vertical Scroll Bar)和水平滚动条(Horizontal Scroll Bar)。它们会自动根据需要出现,例如,当组件的内容宽度超过其可视区域时,就会出现水平滚动条;高度...

    swing之滚动条下拉加载数据源码

    在Java的Swing库中,滚动条(Scrollbar)和下拉加载(Pull Down)是两个重要的组件,它们常用于创建用户界面,特别是处理大量数据时。`swing之滚动条下拉加载数据源码`这个标题暗示了我们将在 Swing 应用程序中实现...

    Swing下滚动条实现仿分页

    JScrollPane包括水平和垂直滚动条,可以根据内容大小自动调整。在我们的场景中,JScrollPane将包含JTable,并且当数据超过可视区域时,滚动条会自动出现。 为了实现“仿分页”,我们需要编写定制的代码来控制JTable...

    JavaSwing界面设计(所有控件及示例)

    - `JScrollPane` 提供了滚动条功能,当组件内容超出可视区域时,允许用户滚动查看。 - `JSplitPane` 用于分割窗口为两个或多个可调整大小的部分。 - `JTabbedPane` 创建带有标签的多页面视图。 - `...

    读取文本文件到列表框中,逐行显示,并有水平滚动条和垂直滚动条

    在这个场景中,"读取文本文件到列表框中,逐行显示,并有水平滚动条和垂直滚动条"是一个常见的需求,特别是在处理大文件时。这个过程涉及到文件I/O操作、UI控件的使用以及滚动条功能的实现,这些都是编程中的基础但...

    比较全的JavaSwing图形化界面编程,带你进入Java桌面编程世界。

    在Java Swing中,主要的容器类包括JFrame(顶级窗口)、JPanel(可以包含其他组件的容器)、JScrollPane(带有滚动条的容器)。这些容器类提供了不同的布局管理器,如BorderLayout、FlowLayout、GridLayout、...

    Java Swing 组件全演示

    在Java Swing组件全演示的小程序中,开发者展示了如何使用这些组件创建一个综合的用户界面,让用户能够交互操作。 例如,JSplitPane是一个特殊容器,用于拆分两个子组件。它可以水平或垂直分割,允许用户动态调整两...

    swing组件JScrollPane滚动条实例代码

    1. JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED - 垂直滚动条根据内容是否超出视口而自动显示或隐藏。 2. JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED - 水平滚动条根据内容是否超出视口而自动显示或隐藏。 3. ...

    Swing布局与结构

    * JScrollPane:与JPanel类似,但还可在大的组件或可扩展组件周围提供滚动条。 * JTabbedPane:包含多个组件,但一次只显示一个组件。用户可在组件之间方便地切换。 * JToolBar:按行或列排列一组组件(通常是按钮)...

    swing中Tree与滚动条用法实例分析

    在Java的Swing库中,`JTree`组件用于展示层次结构的数据,而滚动条则是为了在内容超出可视区域时提供导航。本实例通过结合两者,展示了如何在Swing应用程序中创建一个带有滚动条的`JTree`。下面将详细阐述`JTree`和...

    java swing笔记

    在Java Swing中,`JSplitPane`是一个非常强大的组件,用于创建可调整大小的容器来容纳两个子组件(例如面板或滚动窗格),并且允许用户通过拖动分割条来调整每个子组件的大小。下面将详细介绍如何使用`JSplitPane`来...

    java swing控件演示

    例如,如果JTable中的数据过多,可以将其放入JScrollPane中,以实现水平和垂直滚动条。 8. **事件处理**: Swing中的事件处理是基于监听器模型的。每个组件都可以注册一个或多个监听器,如ActionListener、...

    Java中Swing的相关知识(2)

    它包含一个`JViewport`对象,该对象充当视图窗口,允许用户通过滚动条在大内容区域中移动,而无需重新绘制整个组件。这极大地提高了大型数据集的显示效率和用户体验。 `JScrollPane`不仅可以容纳文本和其他类型的...

    程序中的的对话框有滚动条

    在对话框中,如果文本或者其他控件内容过多,垂直滚动条通常用来浏览上下文,而水平滚动条则用于左右移动内容。滚动条的使用可以是自动的,即当内容超过设定的尺寸时自动出现,也可以是手动设置,无论内容多少始终...

    滚动 条控制 滚动条控制

    2. 垂直滚动条:用于垂直方向的滚动,通常出现在内容高度超过窗口高度的情况。 3. 自动隐藏:根据内容是否超出视口范围,滚动条可以自动隐藏或显示。 4. 滚动条的组成部分包括轨道(track)、滑块(thumb)、箭头...

    java swing调色板程序

    `JScrollPane`可以包裹`JPanel`或其他组件,当组件的内容超出可视区域时,提供水平或垂直滚动条。为了监听滚动事件,我们需要添加`AdjustmentListener`,并重写`adjustmentValueChanged()`方法来响应滚动条的变化。 ...

Global site tag (gtag.js) - Google Analytics