`

JTable( 放在JScrollPane中 )中加入一行后, 然后让其获得焦点且滚动条自动下来

 
阅读更多
以下内容摘抄自网上多个地方:

1. JTable( 放在JScrollPane中 )中加入一行后, 然后让其获得焦点且滚动条自动下来!
int rowCount = table.getRowCount();
table.getSelectionModel().setSelectionInterval(rowCount-1, rowCount-1);
Rectangle rect = table.getCellRect(rowCount-1, 0, true);

//table.repaint(); 若需要的话


//table.updateUI();若需要的话


table.scrollRectToVisible(rect);

注:table.scrollRectToVisible(rect)必须在table.repaint()和 table.updateUI()(如果有的话)之后,不然有时滚动条不能滚动到最底下,亲身体验过。

2. 直接操纵JScrollPane中的JScrollBar
JScrollPane sPane = new JScrollPane(table);
JScrollBar sBar = sPane.getVerticalScrollBar(); //得到了该JScrollBar
具体操作:
sBar.setValue(int value); //设置一个具体位置,value为具体的位置
int value = sBar.getValue();//得到JScrollBar现在的位置
sBar.getMaximum(); //得到允许的最大值
sBar.getMinimum(); //得到允许的最小值

3. JTextArea+JScrollPane滚动条自动在最下边
(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);
     
     

4. 设置jScrollPane中的JTextArea自动到底部
    int height=10;
    Point p = new Point();
    p.setLocation(0,this.jTextArea1.getLineCount()*height);
    this.jScrollPane1.getViewport().setViewPosition(p);

 

分享到:
评论
2 楼 zhylandroid 2013-08-27  
1 楼 dkeagle 2012-05-22  
太感谢了,太有用了,在网上查了两天资料了...

相关推荐

    JScrollPane 滚动条 例子

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

    Swing下滚动条实现仿分页

    滚动条的值变化可以关联到数据集中的特定行或页,使得只有相关部分的数据被加载到JTable中,这样可以提高性能,避免一次性加载大量数据。 在实际应用中,可能会有一个固定列的需求,例如,表头或者某些关键列始终...

    Jtable中加入复选框的两种方法

    JTable中加入复选框的两种方法 在Java中,JTable是一个常用的表格控件,用于显示和编辑表格数据。然而,在JTable中加入复选框是一个常见的需求,但是却不是那么容易实现。本文将介绍JTable中加入复选框的两种方法,...

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

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

    JAVA JTable使用实例

    5. **添加到JScrollPane**:为了在数据超出视图范围时显示滚动条,`JTable`通常嵌入到`JScrollPane`中。 ```java JScrollPane scrollPane = new JScrollPane(table); ``` 6. **添加到容器**:最后,将`...

    学会用JScrollPane和Jtable以及table的Defaulttablemodel*

    通过`DefaultTableModel`实例化一个`JTable`对象,并将其放置在`JScrollPane`内,以便实现滚动功能。 ```java void creatJTable() { date = new Object[5]; DefaultTableModel defaulttablemodel = new ...

    JTable的setSelectionMode设置为SINGLE_SELECTION后,Ctrl+A按下,焦点自动迁移到最后一行的处理

    主要解决: 把jtable设置为只能选择一行,但是按下Ctrl+A以后,table会自动把选择迁移到最后一行. 如何不让焦点自动迁移?给了个人的一个简单的实现。

    JTable自动换行

    然后,在`getTableCellRendererComponent`方法中,我们根据单元格的状态(是否被选中、是否有焦点)设置背景色和前景色,并将单元格的值赋给`JTextArea`的文本。 要使用这个自定义渲染器,你需要在`JTable`的列模型...

    jtable选中需要修改的行

    当我们需要在JTable中实现用户交互,比如选中某一行并进行编辑时,通常会涉及到几个关键概念和技术。以下是对这些知识点的详细解释: 1. **JTable的创建与基本用法**:JTable是javax.swing.JTable类的实例,它基于...

    Excel内容复制到JTable中

    - 将创建的`JTable`添加到`JScrollPane`中,然后将`JScrollPane`添加到`JFrame`或其他容器,以便在GUI中显示。 7. **事件监听**: - 如果需要对用户在JTable中的操作做出响应,如编辑、删除等,可以添加各种监听...

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

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

    JTable 拖动行 移动行

    JTable 拖动行 移动行的ui,直接 table.setUI(new DragDropRowTableUI()); 调用

    Java的Jtable、从数据库取数据显示在表格中

    - 设置表格大小,并将其放入`JScrollPane`中以便提供滚动功能。 - 最后,将`JScrollPane`添加到窗口的主容器中进行展示。 #### 三、选择JTable行并获取数据 1. **检查选中状态**: - 可以通过`jTable.get...

    java取出mysql中数据,显示在jtable里面

    使用前面准备好的数据创建JTable,并将其封装在一个JScrollPane中,以便在窗口中滚动查看数据。 示例代码如下: ```java Vector columnNames = new Vector(); columnNames.add("学号"); columnNames.add("姓名"); ...

    swing中JTable的简单使用

    3. **添加到容器**:将JTable添加到JScrollPane中,然后将JScrollPane添加到JFrame或JPanel,例如`JScrollPane scrollPane = new JScrollPane(table);`和`contentPane.add(scrollPane);`。 4. **定制外观**:可以...

    Jtable 中放入多个按钮

    在Java Swing库中,`JTable`是一个非常重要的组件,用于展示二维数据表格。当我们需要在`JTable`中实现更复杂的交互,比如在一个单元格内放置多个按钮时,这通常涉及到自定义`TableCellRenderer`和`TableCellEditor`...

    JTable 操作单元格 行 列

    在Java Swing库中,`JTable`是一个非常重要的组件,用于在GUI应用程序中展示二维数据。它是基于模型-视图-控制器(MVC)架构设计的,使得数据操作变得灵活且易于管理。本篇文章将深入探讨`JTable`如何操作单元格、行...

    java 中 Jtable的用法

    ### Java中的JTable用法详解 #### 一、概述 JTable是Swing框架中用于显示和编辑表格数据的关键组件之一。它不仅提供了强大的数据管理功能,还支持丰富的定制选项,使得开发者能够根据具体需求创建出高度个性化的...

    Swing之JTable的详细介绍

    在示例代码中,我们看到`SimpleTable`类通过`Object[][]`和`String[]`数组创建了一个简单的JTable,然后将其放入`JScrollPane`中。`JScrollPane`使得表格可以滚动,并自动包含表格的列头。如果直接将表格添加到容器...

    JAVA中JTable的使用方法

    在Java编程环境中,`JTable`是Swing库中的一个核心组件,用于展示二维数据集,通常用于创建表格视图。这个组件对于用户界面(UI)设计尤其重要,尤其是在需要显示和编辑数据库或其他数据源数据时。下面我们将深入...

Global site tag (gtag.js) - Google Analytics