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

原创 2013年12月04日 22:23:24

效果图



相关代码 展开详细说明

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) {}
	}
}


相关文章推荐

一个牛人写的“设置jtable单元格颜色,以及jtable中实现复选框”的程序,备忘

CSDN,“fengzhou0920”的作品,很好很强大,呵呵 //TryJTable.java import java.awt.*;import java.awt.event.*;import ja...
  • wzh32
  • wzh32
  • 2009年05月01日 11:09
  • 4442

JTabel 中监听某个单元格的值确实改变了

                         在使用Jtable得时候,当然是我自己在使用得时候,查了下API没有发现如何监听某个单元格得值是否被修改过了,如果那位仁兄知道怎么直接添加监听还望多多...

Swing之JTable篇在表单元格中增加文本输入框

在JTable单元个中增加文本输入框是经常遇到的,一般在开发中会遇到在表格中对输入做控制就可以用到这种方法来实现 实现方式: 重写:TableCellRenderer接口 Componen...
  • SJF0115
  • SJF0115
  • 2011年11月19日 19:46
  • 1947

swing jTable 自定义单元格

jTable 单元格 自定义 颜色 图片

Java Swing JTable 表格【12:为表格的单元格指定文字说明】

表格文字说明定义: 当鼠标知道单元格时,会出现一些说明性的文字,下面将通过一个实例讲解如何为单元格添加文字说明:具体代码如下 package com.acconsys.swing.chapter1...

Swing之JTable篇设置表格单元格的内容对齐方式

设置表单元格内容对齐方式在开发中也会经常遇到。 需要继承DefaultCellEditor类,并重写: public Component getTableCellEditorCompone...
  • SJF0115
  • SJF0115
  • 2011年11月19日 19:45
  • 3984

设置java中JTable单元格指定文字颜色

今天发现,将需要显示在toolTipText中的文本前加上,那么就可以使用html标记显示toolTipText中的文本了,那么就可以自定义显示某几个文字的颜色以及字体了。 按这个思路我试了一下在JT...
  • jhgy2
  • jhgy2
  • 2015年01月01日 12:02
  • 1322

JTable操作 关于单元格颜色设置

今天写一篇关于JTable有关的文章,包括:为JTable单元格设置字体颜色、为JTable单元格设置背景色、让JTable某一列设置为不可能编辑。代码很简单,请朋友们参考如下: package Ja...

浅析JTable与TableModel、TableCellRenderer、TableCellEditor接口——使用JComboBox显示单元格的值

如同其它的Swing组件,JTable使用MVC(模型、试图、控制器)设计方式,将可视化组件(JTable实例)从其数据(TableModel实现)中分离出来。 ·TableModel接口 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Swing —— JTable鼠标移入更换单元格颜色
举报原因:
原因补充:

(最多只允许输入30个字)