`
djsl6071
  • 浏览: 593590 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

JTable拖拽调整行高

阅读更多
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.table.*;


/**
 * <p>
 * Title:
 * </p>
 * <p>
 * Description:
 * </p>
 * <p>
 * Copyright: Copyright (c) 2004
 * </p>
 * <p>
 * Company:
 * </p>
 * 
 * 
@author not attributable
 * 
@version 1.0
 
*/

public class TableRowHeightFrame extends JFrame {

    Vector col 
= new Vector();
    DefaultTableModel dm 
= new DefaultTableModel(col, 0);
    JScrollPane jScrollPane1 
= new JScrollPane();
    JTable table 
= new JTable(dm);

    
public TableRowHeightFrame() {

        
try {
            loadString();
            jbInit();
            loadata();
        } 
catch (Exception e) {
            e.printStackTrace();
        }
    }

    
public static void main(String[] args) {        
        
        TableRowHeightFrame frm 
= new TableRowHeightFrame();

        frm.setBounds(
400300600400);
        frm.setVisible(
true);

    }

    
void loadString() {
        col.add(
"id");
        col.add(
"name");
        col.add(
"age");
        col.add(
"address");

        dm.setColumnIdentifiers(col);
    }
    
    
private void jbInit() throws Exception {
        
this.getContentPane().add(jScrollPane1, BorderLayout.CENTER);
        jScrollPane1.getViewport().add(table, 
null);
        MouseAdapterListener listener 
= new MouseAdapterListener();
        table.addMouseListener(listener);
        table.addMouseMotionListener(listener);

    }

    
void loadata() {
        dm.addRow(
new Object[] { "1""zt""30""wuxi" });
        dm.addRow(
new Object[] { "2""zt""30""wuxi" });
        dm.addRow(
new Object[] { "3""zt""30""wuxi" });
        dm.addRow(
new Object[] { "4""zt""30""wuxi" });
    }

    
class MouseAdapterListener extends java.awt.event.MouseMotionAdapter
            
implements MouseListener {
        
int oldY = 0;
        
int newY = 0;
        
int row = 0;
        
int oldHeight = 0;
        
boolean drag = false;
        
int increase = 0;

        
public MouseAdapterListener() {

        }

        
public void mouseMoved(MouseEvent e) {
            
int onRow = table.rowAtPoint(e.getPoint());

            
int height = 0;
            
for (int i = 0; i <= onRow; i++) {
                height 
= height + table.getRowHeight(i);
            }

            
if (height - e.getY() < 3) {
                drag 
= true;
                table.setCursor(
new Cursor(Cursor.N_RESIZE_CURSOR));
            } 
else {
                drag 
= false;
                table.setCursor(
new Cursor(Cursor.DEFAULT_CURSOR));
            }

        }

        
public void mouseDragged(MouseEvent e) {
            
if (drag) {
                
int value = oldHeight + e.getY() - oldY;
                
if (value < 30)
                    table.setRowHeight(row, 
30);
                
else                     
                    table.setRowHeight(row, oldHeight 
+ e.getY() - oldY);
                
                table.setRowSelectionInterval(row, row);                
            }
        }

        
public void mousePressed(MouseEvent e) {
            oldY 
= e.getY();
            row 
= table.rowAtPoint(e.getPoint());
            oldHeight 
= table.getRowHeight(row);
            table.setRowSelectionInterval(row, row);
        }

        
public void mouseReleased(MouseEvent e) {
            newY 
= e.getY();
            table.setCursor(
new Cursor(Cursor.DEFAULT_CURSOR));
        }

        
public void mouseClicked(MouseEvent e) {
        }

        
public void mouseEntered(MouseEvent e) {
        }

        
public void mouseExited(MouseEvent e) {
        }
    }
}
 JTable拖拽调整行高,网上找的,凑合着用了。
分享到:
评论

相关推荐

    JTable表格自定义行高,java中JTable自定认行高[参照].pdf

    JTable 表格自定义行高 JTable 是 Java 语言中一个常用的表格组件,用于显示和编辑表格数据。在 Java 的 Swing 库中,JTable 是一个非常重要的组件,广泛应用于各种桌面应用程序中。然而,在使用 JTable 时,开发者...

    JTable实现行间拖拽的最简单方法

    本文将详细介绍如何通过一种简单的方法,为`JTable`添加行间拖拽功能,而无需对已有代码进行大规模修改或实现复杂的DnD接口。 首先,理解`JTable`的基本结构是至关重要的。`JTable`由`TableModel`、`...

    JTable 拖动行 移动行

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

    JTable 拖动行 移动行JTable 拖动行 移动行的ui

    在标题和描述中提到的“JTable 拖动行 移动行的ui”,正是指为`JTable`添加了拖放功能的用户界面。 要实现这个功能,通常我们需要自定义`JTable`的UI,或者使用已经存在的第三方库。在描述中提到了`table.setUI(new...

    JTable 拖动行 移动行JTable 拖动行 移动行的ui,

    当用户释放鼠标时,结束拖动并根据鼠标的当前位置调整行的顺序。 3. **处理拖放逻辑**: 在拖放过程中,你需要跟踪鼠标的当前位置,并确定目标行的位置。当用户释放鼠标时,更新`JTable`的数据模型,将原行移动到...

    JTable 拖动行 移动行JTable 拖动行 移动行的ui,直接 table.setUI(

    标题和描述提到的`DragDropRowTableUI`是`JTable`的一种自定义用户界面(UI)实现,它扩展了`javax.swing.plaf.basic.BasicTableUI`,增加了拖放功能,使得用户可以直接通过鼠标拖动来移动`JTable`的行。 要实现`...

    java 中 Jtable的用法

    JTable具有自动调整列宽的功能,以适应窗口的变化。这一行为可以通过`setAutoResizeMode()`方法进行控制。该方法接受一个整数参数,表示不同的调整模式: - `AUTO_RESIZE_OFF`: 不自动调整列宽。 - `AUTO_RESIZE_...

    Java中JTable的用法.doc

    调整行高,使用`table.setRowHeight(int pixelHeight)`;改变选中行的颜色,使用`table.setSelectionBackground()`和`table.setSelectionForeground()`;甚至可以隐藏水平和垂直的网格线,通过`table....

    JTable动态刷新数据

    在使用 JTable 时,需要注意表格的列宽和行高的设定,这可以使用 TableColumn 的 setMaxWidth() 和 setMinWidth() 方法来实现。 JTable 动态刷新数据需要使用 DefaultTableModel 来存储和管理数据,然后使用...

    复杂JTable(复杂表头、跨行列表体)

    - 使用`JTable`的`setRowHeight()`方法可以调整行高,适应跨行单元格的需要。 - 可以通过`DefaultTableCellRenderer`的`setHorizontalAlignment()`和`setVerticalAlignment()`方法来调整单元格内文本的对齐方式。 - ...

    JTable使用 JTable使用

    JTable使用 JTable使用JTable使用JTable使用

    JTable颜色渲染代码

    - **自动调整大小模式关闭**:`table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF)`表示关闭表格自动调整列宽的功能。 - **行高设置**:`table.setRowHeight(20)`用于设置表格的行高。 - **列宽设置**:通过循环遍历...

    JAVA中JTable的使用方法

    可以通过`setRowHeight()`设置行高,`setShowGrid()`控制网格线的显示,`setFillsViewportHeight()`决定表格是否占据整个视口高度。还可以自定义单元格渲染器和编辑器。 7. **表头操作** 使用`getTableHeader()`...

    Swing JTable 常用属性

    可以使用 `setAutoResizeMode` 方法将表格列设置为不可随容器组件大小变化自动调整宽度,例如:`table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);` 2. 限制某列的宽度 可以使用 `TableColumn` 对象设置某列的...

    JAVA表格控件JTable常用操作详解.doc

    1. **关闭自动调整宽度**:`table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF)`,防止列宽随窗口大小改变而自动调整。 2. **设置列宽限制**:通过`TableColumn`对象的`setPreferredWidth`, `setMaxWidth`和`...

    JTable自动换行

    这个例子展示了如何通过自定义渲染器实现`JTable`的自动换行功能,同时还能调整字体大小。这样的做法使得`JTable`更加灵活,可以适应各种复杂的数据显示需求。在实际项目中,你可以根据具体的需求对这个渲染器进行...

    JTable

    JTable的显示效果

    jTree和jTable 双向联动

    实现jTable和jTree的双向联动,点击jTree会选中jTable单元格,点击jTable会选中jTree节点。

    JTable的初步编程

    打开NetBeans,创建一个新的Java Swing GUI应用,然后从工具箱中拖拽`JTable`到设计视图。接着,你可以右键点击`JTable`并选择“调整列宽”、“添加列”等操作。对于数据模型,NetBeans会自动为你创建一个`...

    Swing之JTable的详细介绍

    JTable还支持列宽的自动调整和手动调整,可以使用`AutoResizeMode`枚举来设置自动调整策略。此外,`TableColumn`类允许对列进行更细致的控制,例如隐藏、移动或改变列宽。 关于Excel表与JTable之间的转换,通常可以...

Global site tag (gtag.js) - Google Analytics