`

在JScrollPane(JTextArea)中增加内容时,滚动条自动滚至底部

    博客分类:
  • Java
阅读更多

 http://hi.baidu.com/ofbase/blog/item/74f826e9ea7db23eb90e2d03.html

 

在JScrollPane(JTextArea)的JTextArea中增加内容,如果通过界面按钮可以直接加入,并且达到如题之效果,但如果用程序加入内容的时候,则不行。

测试例程如下:

 

import java.awt.AWTEvent;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;

public class ScrollBottom extends JFrame{
   private JTextArea ta = new JTextArea();
   private Timer   timer = new Timer();

   public ScrollBottom(){
     super();
     enableEvents(AWTEvent.WINDOW_EVENT_MASK);
     init();
   }

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

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

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

   /** 该方法用于实现滚动以及光标相关效果 */
  public void scrollAndSetCursor(){
    // ta.requestFocus();
    ta.setSelectionStart(ta.getText().length());
  }

   protected void processWindowEvent(WindowEvent e){
     super.processWindowEvent(e);
     if(e.getID() == WindowEvent.WINDOW_CLOSING)
       System.exit(0);
   }

   public static void main(String[] args){
     ScrollBottom scroll = new ScrollBottom();
     scroll.setVisible(true);
   }
}

 

分享到:
评论

相关推荐

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

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

    java基础学习内容

    滚动面板用于在需要时添加滚动条到组件上。 ##### 5. 下拉列表(JComboBox) 下拉列表用于提供一个选项列表供用户选择。 ##### 6. 单选按钮(JRadioButton) 单选按钮用于在一组互斥选项中选择一项。 ##### 7. 复选...

    Java swing商城+简单聊天系统+论坛

    用户可以通过滚动条查看更多的商品,也可以通过JButton进行翻页操作。 2. **购物车**:用户可以将选择的商品添加到购物车,购物车的管理通常涉及到一个数据结构(如ArrayList或LinkedList)来存储选中的商品对象。...

    Swing组件下载(常用组件)

    15. JScrollBar, JSlider: 分别提供垂直和水平滚动条以及滑块组件,用于调整视图或数值。 16. JProgressBar: 显示任务的进度,例如文件传输或计算过程。 17. JFormattedTextField, JPasswordField: 前者允许格式化...

    java swing笔记

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

Global site tag (gtag.js) - Google Analytics