`
tuxq5721
  • 浏览: 34473 次
社区版块
存档分类
最新评论

Swing —— JTable鼠标移入更换单元格颜色

阅读更多

效果图

 

相关代码 展开详细说明

public class MouseHoverTable extends JFrame {
	Color color = new Color(232, 232, 232);
	JTable table;
	int row = 0;                    // 记录鼠标所移动到的行
	int column = 0;                    // 记录鼠标所移动到的列
	MouseHoverTable() {
		super("鼠标悬浮时更换颜色");
		table = new JTable(10, 10);
		// 单元格边框颜色
		table.setGridColor(color);
		// 行高与列宽
		table.setRowHeight(50);
		TableColumnModel columnModel = table.getColumnModel();
		int columnCount = columnModel.getColumnCount();
		for (int i = 0; i < columnCount; i++) {
			TableColumn col = columnModel.getColumn(i);
			col.setMinWidth(50);
			col.setMaxWidth(50);
		}
 
	// 添加鼠标移动监听, 以及设置列渲染器
	CellRendererAndMouseListener rendererAndListener = new CellRendererAndMouseListener();
	table.addMouseMotionListener(rendererAndListener);
	table.setDefaultRenderer(Object.class, rendererAndListener);
	// 添加到内容
	this.getContentPane().add(table);
	}
 
	public static void main(String[] args) {
		JFrame frame = new MouseHoverTable();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.pack();
		frame.setVisible(true);
	}
 
	public class CellRendererAndMouseListener extends JLabel implements
		TableCellRenderer, MouseMotionListener {
 
	public CellRendererAndMouseListener() {
		setOpaque(true);
	}
 
	public Component getTableCellRendererComponent(JTable table,
		Object value, boolean isSelected, boolean hasFocus, int row,
		int column) {
		if (MouseHoverTable.this.row == row && 
			MouseHoverTable.this.column == column) {
			this.setBackground(color);
		} else {
			this.setBackground(Color.WHITE);
		}
		return this;
	}
	public void mouseMoved(MouseEvent e) {
		JTable table = (JTable) e.getSource();
		row = table.rowAtPoint(e.getPoint());
		column = table.columnAtPoint(e.getPoint());
		table.repaint();
	}
 
	public void mouseDragged(MouseEvent e) {}
	}
}



 

分享到:
评论

相关推荐

    Swing JTable组件设置单元格合并

    Swing JTable组件设置单元格合并,内置Test测试类,核心API GridBagTable tasktable = new GridBagTable(model); tasktable.mergeCells(startRow, endRow, 0, 0);

    Java Swing实现JTable检测单元格数据变更事件的方法示例

    Java Swing 实现 JTable 检测单元格数据变更事件的方法示例 Java Swing 中的 JTable 是一个功能强大且灵活的表格组件,广泛应用于各种桌面应用程序中。然而,在实际开发中,我们经常需要检测单元格数据的变更事件...

    Jtable 中放入多个按钮

    下面我们将深入探讨如何在`JTable`中放入多个按钮以及相关的技术细节。 首先,`JTable`默认的渲染器和编辑器无法直接支持在单元格内放置多个组件,如按钮。因此,我们需要创建一个自定义的`TableCellRenderer`来...

    Swing之JTable用法

    Swing之JTable用法

    Swing之JTable的详细介绍

    Swing之JTable的详细介绍,其基本用法及源码例子

    java swing 导出Jtable里面的数据到excel

    java swing 导出Jtable里面的数据到excel,不用拷贝代码,直接粘贴代码

    Swing之JTable详解

    ### Swing之JTable详解 #### 类层次结构图 在Swing框架中,`JTable`是构建GUI应用程序中表格的主要组件。它继承自`JComponent`类,这使得`JTable`能够支持丰富的图形用户界面功能。下面展示了`JTable`的类层次结构...

    Swing中JTABLE中添加JBUTTON控件

    在Java的Swing库中,`JTable`是用于创建数据网格视图的重要组件,它允许用户以表格的形式查看和操作数据。而`JButton`则是一个常用的按钮控件,通常用于触发某些动作或事件。将`JButton`添加到`JTable`中可以为用户...

    Java Swing JTable分页

    ### Java Swing JTable 分页实现详解 #### 一、引言 在开发基于Java Swing的应用程序时,我们经常需要处理大量的数据展示问题。对于表格形式的数据展示,`JTable`是一个非常常用且强大的组件。然而,当数据量过大时...

    TableCellRenderer的用法(JTable单元格背景颜色设置)

    实现设置JTable中某些单元格的背景色

    swing 中Jtable例子

    在Java的Swing库中,`JTable`是用于创建数据网格视图的重要组件,它允许用户以表格的形式展示和操作数据。`JTable`在GUI应用中非常常见,尤其适用于展示结构化数据,比如数据库记录或者报表。在这个例子中,我们将...

    中级SWING-JTable属性

    ### 中级SWING-JTable属性详解 在Java Swing框架中,`JTable`是一个非常重要的组件,用于展示表格数据。为了更好地控制表格的表现形式及功能,`JTable`提供了多种属性设置方法。以下是对给定内容中提到的一些关键...

    JTable合并单元格

    总的来说,合并`JTable`单元格是一个相对复杂的过程,需要对Java Swing和`JTable`的内部工作原理有深入的理解。通过自定义渲染器和模型,以及适当的事件处理,你可以实现符合需求的单元格合并效果。不过,这个过程...

    swing中JTable的简单使用

    在"swing中JTable的简单使用"这个主题中,我们将深入探讨如何在Java Swing应用中有效地使用JTable。 首先,JTable是javax.swing.JTable类的实例,它是JFrame或JPanel等容器中的一个组件。JTable通常与TableModel...

    Swing之JTable+JComboBox的详细介绍[zone yan]

    在Java的Swing库中,`JTable`和`JComboBox`是两个非常重要的组件,它们常被用于创建用户界面,展示数据并提供交互性。`JTable`用于展示二维表格数据,而`JComboBox`则是一种下拉选择框,可以提供多个选项供用户选择...

    java swing 对象jtable

    在java swing的开发中,需要往表格添加自定义对象,往往需要转换。此类定义了抽象类,运用了范型技术。只需继承时传入对象类型,既可以操作对象表格Model。 作者(HuaSheng) 如有不足,欢迎给我email:sheng24@vip....

    JTable动态刷新数据

    JTable 动态刷新数据是指在 Java Swing 应用程序中,使用 JTable 组件展示数据,并实时更新数据的过程。这种技术在很多实际应用场景中非常有用,如股票交易平台、实时监控系统、电子表格等。 首先,在使用 JTable ...

    JTable 操作单元格 行 列

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

Global site tag (gtag.js) - Google Analytics