http://www.developer.com/

Back to article

User Code: Place a Hyperlink Hand Cursor on a JTable Header


January 30, 2002

Do you want to show a Hand Cursor when a Hyperlink label is placed on a table header?

To place a simulated Hyperlink on the JTable Header, you need to change the cursor to highlight the hyperlink effect of showing the Hand cursor when the cursor is on top of the hyperlink. The following lines of code guide the developer to simulate it.

The steps you need to follow are:

  1. Create a JTable with a model.
  2. Get the existing table header column model.
  3. Create a subclassed table header object and set it to table header.
  4. Create a subclass of JTableheader and override the method processMouseMotionEvent.
  5. Get the column hit from the coordinates of the mouse event.
  6. Check if it matches with the required column; if 'yes', set the Hand Cursor.
  7. Else pass the event to 'super' to handle it.

For further resources refer to the author's site. If you have any questions mail to: range_gowda@hotmail.com>


*/

		JTable customTable = new JTable(customTModel);
		TableColumnModel  tcm = customTable.getTableHeader().getColumnModel();
		customTable.setTableHeader(new MyTableHeader(tcm));

	class MyTableHeader extends JTableHeader
	{
		public MyTableHeader(TableColumnModel tcm) { super(tcm); }
		public void processMouseMotionEvent(MouseEvent me)
		{
			int column = customTable.getTableHeader().columnAtPoint(me.getPoint());
			if(column == 2)	  setCursor(new Cursor(Cursor.HAND_CURSOR)); 
			else		super.processMouseMotionEvent(me);
		}
	} // end of class MyTableHeader

Sitemap | Contact Us

Thanks for your registration, follow us on our social networks to keep up-to-date