swing JTable学习(五)—中给table中的cell加tips 以及用AbstractTableModel创建表格

package tableTest;

import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableModel;

public class TabelTest {

	JFrame jFrame = new JFrame();
	private JScrollPane jScrollPane;

	public void show() {

		jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		jFrame.setSize(300, 128);

		final Object jtText[][] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 },

		{ 9, 10, 11, 12 }, { 13, 14, 15, 16 }, { 17, 18, 19, 20 } };

		final String jtHead[] = { "Column1", "Column2", "Column3", "Column4" };

		TableModel dataModel = new AbstractTableModel() {

			private static final long serialVersionUID = 0L;

			public int getColumnCount() {

				return jtHead.length;

			}

			public int getRowCount() {

				return jtText.length;

			}

			public Object getValueAt(int rowIndex, int columnIndex) {

				return jtText[rowIndex][columnIndex];

			}

			public String getColumnName(int column) {

				return jtHead[column];

			}

			public boolean isCellEditable(int row, int col) {

				return false;

			}

			public void setValueAt(Object aValue, int row, int column) {

				jtText[row][column] = aValue;

			}

		};
		
		
		final JTable jTable = new JTable(dataModel);
		
		jScrollPane = new JScrollPane(jTable);

		jScrollPane.setBounds(10, 40, 280, 90);

		jFrame.add(jScrollPane);

		jFrame.setVisible(true);
		
		
		jTable.addMouseMotionListener(new MouseMotionListener() {

 			@Override
 			public void mouseDragged(MouseEvent e) {

 			}

 			public void mouseMoved(MouseEvent e) {

 				Point point = e.getPoint();

 				int x = jTable.rowAtPoint(point);

 				int y = jTable.columnAtPoint(point);
 				
 				System.out.println("x:"+x);
 				System.out.println("y:"+y);

 				//if (x != row || y != column) {

 					//row = x;

 					//column = y;

 				//}

 				Object tip = jTable.getValueAt(x, y);

 				if (tip != null) {

 					jTable.setToolTipText(tip.toString());

 				}

 			}

 		});

	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		TabelTest tabelTest = new TabelTest();
		tabelTest.show();
		

	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值