`
yuanfen860913
  • 浏览: 119868 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

请问这个JTextArea 的滚动条怎么不跟着滚动啊

阅读更多
(1)在JTextArea插入最后一条消息之后,使用selectAll()将光标强制移动到JTextArea的最后,实现滚动条的自动滚动。(Aviva中采用的方式)

(2)在JTextArea插入最后一条消息之后,使用(JTextArea)recvArea.setCaretPosition(recvArea.getText().length()),将光标移到最后,实现滚动条的自动滚动。

(3)在JTextArea加载了自动滚动条JScroll之后,将JTextArea加入到JScrolPanel的ViewPort中: (有一些Bug,使得图像有点闪烁)
recvScrollPane.getViewport().add(recvArea, null);
然后在JTextArea插入最后一条新消息之后,将滚动条的Viewport重新设置到最底端的位置:
int height = 20;
Point p = new Point();
p.setLocation(0, recvArea.getLineCount() * height);
recvScrollPane.getViewport().setViewPosition(p);

import java.awt.Rectangle;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;

public class ScrollTextArea extends JFrame {

private static final long serialVersionUID = 1L;

private JPanel jContentPane = null;

private JScrollPane jScrollPane = null;

private JTextArea jTextArea = null;

/**
* This method initializes jScrollPane
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPane() {
if (jScrollPane == null) {
jScrollPane = new JScrollPane();
jScrollPane.setBounds(new Rectangle(0, 2, 290, 144));
jScrollPane.setViewportView(getJTextArea());
}
return jScrollPane;
}

/**
* This method initializes jTextArea
*
* @return javax.swing.JTextArea
*/
private JTextArea getJTextArea() {
if (jTextArea == null) {
jTextArea = new JTextArea();
}
return jTextArea;
}

/**
* @param args
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
ScrollTextArea thisClass = new ScrollTextArea();
thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
thisClass.setVisible(true);
}
});
}

/**
* This is the default constructor
*/
public ScrollTextArea() {
super();
initialize();
}

/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(300, 200);
this.setContentPane(getJContentPane());
this.setTitle("JFrame");
}

/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getJScrollPane(), null);
}
return jContentPane;
}
<!--End_rbody_55480489//-->

private void init()
{
setBounds(
0, 0, 300, 150);

final JScrollPane sp = new JScrollPane(ta);
getContentPane().add(sp,
"Center");

for (int i = 0; i <= 10; i++)
{
ta.append(i
+ "\n");
}

JScrollBar sb
= sp.getVerticalScrollBar();
sb.setValue(sb.getMaximum());

// TimerTask task = new TimerTask(){
// public void run(){
// ta.append("Time: " + (System.currentTimeMillis() / 1000));
// scrollAndSetCursor();
// }
// };
}

分享到:
评论

相关推荐

    swing jtextArea滚动条和文字缩放效果

    swing jtextArea滚动条和文字缩放效果是swing jtextArea的两个重要功能,提高了用户体验和交互性。通过本文的介绍和代码实例,希望大家可以更好地理解和应用swing jtextArea滚动条和文字缩放效果。

    swing中的滚动条.doc

    `JScrollPane`不仅包含滚动条,还包含一个称为ViewPort的特殊区域,这个区域显示的是实际的组件,例如`JTextArea`或`JList`。当用户滚动时,ViewPort会移动,使得不同部分的内容可见。 在提供的代码示例中,我们...

    设置多行显示与滚动条.rar

    总的来说,设置多行显示与滚动条是软件界面设计中不可或缺的一部分,它直接影响用户体验。开发者需要根据不同的开发环境和框架,灵活运用各种控件和属性,以满足用户对内容浏览的需求。理解这些基本原理和技巧,对于...

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

    `swing之滚动条下拉加载数据源码`这个标题暗示了我们将在 Swing 应用程序中实现一个功能,即当用户滚动到底部时自动加载更多数据。这种机制常见于许多现代应用程序,如社交媒体应用、新闻阅读器等,以提高用户体验。...

    java_JTextArea_实现不可修改文本内容、右键菜单

    ### Java Swing JTextArea 实现不可修改文本内容及右键菜单定制 #### 一、概述 在Java Swing开发中,`JTextArea` 是一个非常常用的组件,用于显示或编辑多行文本。有时候,我们可能需要创建一个只读的文本区域或者...

    创建带滚动条的窗体的资源

    当窗体中的内容过多无法一次性显示时,滚动条就显得尤为重要,它可以提供用户浏览超出可视区域信息的手段。本知识点将详细阐述如何在不同编程语言和环境中创建带有滚动条的窗体。 1. **Windows Forms (C# / VB.NET)...

    给txtQueryResult加滚动条

    ### 给txtQueryResult添加滚动条 在Java Swing框架中,为文本区域(例如`JTextArea`)添加滚动条是一项常见...这种方法不仅适用于这个特定的例子,也适用于任何需要滚动功能的`JTextArea`或`JEditorPane`等文本组件。

    JScrollPane 滚动条 例子

    在Java Swing库中,`JScrollPane`是一个非常重要的组件,它允许我们添加滚动条到其他组件,如`JLabel`, `JTable`, `JTextArea`等,以方便查看超出容器大小的内容。`JScrollPane`自动处理滚动条的显示与隐藏,使得...

    工作中用到的滚动条 jscrollpane以及整理

    在实际应用中,使用JScrollPane时,我们首先需要导入相关的库,然后创建一个JScrollPane对象,将需要添加滚动条的组件(如JTable或JTextArea)放入其中。例如: ```java import javax.swing.JScrollPane; import ...

    Java-GUI.zip_gui界面滚动条_java gui

    滚动条有五个主要属性: - Orientation:定义滚动条的方向,可以是水平(HORIZONTAL)或垂直(VERTICAL)。 - Value:表示滚动条当前的位置,可以通过setValue()方法设置。 - UnitIncrement:定义每次点击箭头或使用...

    JTextArea 实现行号

    这个功能可以通过自定义边框来实现,就像标题提到的“JTextArea 实现行号”。这里我们将详细讲解如何通过继承 `AbstractBorder` 类来创建一个具有行号功能的自定义边框,并将其应用到 `JTextArea` 上。 首先,让...

    重定向log4j日志到jtextarea

    4. **在GUI中创建和配置JTextArea**:在Swing的GUI设计中,创建一个JTextArea,并确保它有足够的滚动条支持大量日志输出。你可能还需要禁用自动换行,以便日志信息保持原始格式。 5. **配置Log4j**:在Log4j的配置...

    swing组件JScrollPane滚动条实例代码

    在这个例子中,JTextArea被设置到JScrollPane的viewport中,并通过设置垂直和水平滚动条策略来控制滚动条的显示。 实例代码2中展示了如何使用JScrollPane来处理更复杂的界面布局。它创建了一个带有BorderLayout布局...

    JScrollPane

    在JTextArea下添加滚动条以及JTextArea与TextArea的区别

    java 使用JTextArea组件

    在Java Swing库中,`JTextArea`是一个非常重要的组件,用于在GUI应用程序中显示和编辑多行文本。它主要用于创建类似记事本的文本输入区域,可以用来展示大量的文本数据或者接收用户输入的多行文本。`JTextArea`是`...

    Java弹出菜单,为JTextArea添加了右键弹出式菜单,实现了复制、粘贴、剪切

    在我们的示例代码中,我们首先创建了一个 JTextArea 组件,并将其添加到一个 JScrollPane 中。然后,我们创建了一个 JPopupMenu,并将其添加到 JTextArea 中。我们还使用了 MouseListener 来捕获右键点击事件,并在...

    java实现一个滚动字幕的程序

    这个程序的核心目标是让文字在指定区域里连续滚动显示,类似于电视新闻底部的跑马灯效果。下面我们将深入探讨如何实现这样一个功能。 首先,我们需要了解Java Swing库,它是Java提供的一套用于构建图形用户界面...

    改变JTextArea指定位置的背景色

    - 创建一个包含`JTextArea`的窗口。 - 在菜单栏中添加“更改颜色”选项,并允许用户选择红色或蓝色作为文本区域的背景色。 - 用户选择颜色后,应能即时更改`JTextArea`的背景色。 ### 二、技术选型与实现方案 ####...

    java日历滚动字幕和实时时间显示

    在Swing中,`JLabel`可以用来展示日期和时间,而滚动字幕可能需要自定义组件来实现,或者利用`JTextArea`配合滚动条进行模拟。 在`日历用户文档.txt`中,可能包含了关于如何配置和使用这个组件的详细说明,包括如何...

    ModelDialog.zip

    总结来说,"ModelDialog.zip"这个项目提供了关于Java GUI编程中模态和非模态对话框的实例,特别是涉及JDialog、JTextArea的使用,以及如何处理对话框的返回值和滚动条的控制。通过这个项目,开发者可以学习到如何在...

Global site tag (gtag.js) - Google Analytics