<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSwing%2FJTableHeader</id>
		<title>Java Tutorial/Swing/JTableHeader - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSwing%2FJTableHeader"/>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Swing/JTableHeader&amp;action=history"/>
		<updated>2026-04-10T10:55:53Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/Swing/JTableHeader&amp;diff=3855&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Swing/JTableHeader&amp;diff=3855&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 17:44, 31 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/Swing/JTableHeader&amp;diff=3856&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/Swing/JTableHeader&amp;diff=3856&amp;oldid=prev"/>
				<updated>2010-05-31T15:31:56Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Creating a Custom Column Header Renderer in a JTable Component ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.table.TableCellRenderer;&lt;br /&gt;
import javax.swing.table.TableColumn;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JTable table = new JTable();&lt;br /&gt;
    int vColIndex = 0;&lt;br /&gt;
    TableColumn col = table.getColumnModel().getColumn(vColIndex);&lt;br /&gt;
    col.setHeaderRenderer(new MyTableHeaderRenderer());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyTableHeaderRenderer extends JLabel implements TableCellRenderer {&lt;br /&gt;
  public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,&lt;br /&gt;
      boolean hasFocus, int rowIndex, int vColIndex) {&lt;br /&gt;
    setText(value.toString());&lt;br /&gt;
    setToolTipText((String) value);&lt;br /&gt;
    return this;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Customizing a JTableHeader Look and Feel ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Property StringObject TypeTableHeader.backgroundColorTableHeader.cellBorderBorderTableHeader.fontFontTableHeader.foregroundColorTableHeaderUIString&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Customizing Column Headers with Icons ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import javax.swing.Icon;&lt;br /&gt;
import javax.swing.ImageIcon;&lt;br /&gt;
import javax.swing.JComponent;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JScrollPane;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.UIManager;&lt;br /&gt;
import javax.swing.border.Border;&lt;br /&gt;
import javax.swing.table.TableCellRenderer;&lt;br /&gt;
import javax.swing.table.TableColumn;&lt;br /&gt;
import javax.swing.table.TableColumnModel;&lt;br /&gt;
class JComponentTableCellRenderer implements TableCellRenderer {&lt;br /&gt;
  public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,&lt;br /&gt;
      boolean hasFocus, int row, int column) {&lt;br /&gt;
    return (JComponent) value;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class LabelHeaderSample {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    final Object rows[][] = { { &amp;quot;one&amp;quot;, &amp;quot;1&amp;quot; }, { &amp;quot;two&amp;quot;, &amp;quot;2&amp;quot; }, { &amp;quot;three&amp;quot;, &amp;quot;3&amp;quot; } };&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;Label Header&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    &lt;br /&gt;
    String headers[] = { &amp;quot;English&amp;quot;, &amp;quot;#&amp;quot; };&lt;br /&gt;
    JTable table = new JTable(rows, headers);&lt;br /&gt;
    JScrollPane scrollPane = new JScrollPane(table);&lt;br /&gt;
    Icon redIcon = new ImageIcon(&amp;quot;yourFile.gif&amp;quot;);&lt;br /&gt;
    Icon blueIcon = new ImageIcon(&amp;quot;yourFile.gif&amp;quot;);&lt;br /&gt;
    Border headerBorder = UIManager.getBorder(&amp;quot;TableHeader.cellBorder&amp;quot;);&lt;br /&gt;
    JLabel blueLabel = new JLabel(headers[0], blueIcon, JLabel.CENTER);&lt;br /&gt;
    blueLabel.setBorder(headerBorder);&lt;br /&gt;
    JLabel redLabel = new JLabel(headers[1], redIcon, JLabel.CENTER);&lt;br /&gt;
    redLabel.setBorder(headerBorder);&lt;br /&gt;
    TableCellRenderer renderer = new JComponentTableCellRenderer();&lt;br /&gt;
    TableColumnModel columnModel = table.getColumnModel();&lt;br /&gt;
    TableColumn column0 = columnModel.getColumn(0);&lt;br /&gt;
    TableColumn column1 = columnModel.getColumn(1);&lt;br /&gt;
    column0.setHeaderRenderer(renderer);&lt;br /&gt;
    column0.setHeaderValue(blueLabel);&lt;br /&gt;
    column1.setHeaderRenderer(renderer);&lt;br /&gt;
    column1.setHeaderValue(redLabel);&lt;br /&gt;
    frame.add(scrollPane, BorderLayout.CENTER);&lt;br /&gt;
    frame.setSize(300, 150);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Hiding column headers: table.setTableHeader(null); ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JScrollPane;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
public class NullColumnHeader {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    JFrame frame = new JFrame();&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    Object rowData[][] = { { &amp;quot;Row1-Column1&amp;quot;, &amp;quot;Row1-Column2&amp;quot;, &amp;quot;Row1-Column3&amp;quot; },&lt;br /&gt;
        { &amp;quot;Row2-Column1&amp;quot;, &amp;quot;Row2-Column2&amp;quot;, &amp;quot;Row2-Column3&amp;quot; } };&lt;br /&gt;
    Object columnNames[] = { &amp;quot;1&amp;quot;, &amp;quot;2&amp;quot;, &amp;quot;3&amp;quot; };&lt;br /&gt;
    JTable table = new JTable(rowData, columnNames);&lt;br /&gt;
    JScrollPane scrollPane = new JScrollPane(table);&lt;br /&gt;
    table.setTableHeader(null);&lt;br /&gt;
    &lt;br /&gt;
    frame.add(scrollPane, BorderLayout.CENTER);&lt;br /&gt;
    frame.setSize(300, 150);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;You could also remove headers by subclassing JTable and overriding the protected &lt;br /&gt;
configureEnclosingScrollPane() method, or by telling every TableColumn that its &lt;br /&gt;
header value is empty.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Implementing Variable-Height Column Headers in a JTable Component ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import javax.swing.Icon;&lt;br /&gt;
import javax.swing.ImageIcon;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.UIManager;&lt;br /&gt;
import javax.swing.table.DefaultTableCellRenderer;&lt;br /&gt;
import javax.swing.table.DefaultTableModel;&lt;br /&gt;
import javax.swing.table.JTableHeader;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    DefaultTableModel model = new DefaultTableModel();&lt;br /&gt;
    JTable table = new JTable(model);&lt;br /&gt;
    model.addColumn(&amp;quot;Col1&amp;quot;);&lt;br /&gt;
    model.addColumn(&amp;quot;Icon Here&amp;quot;);&lt;br /&gt;
    table.getColumnModel().getColumn(0).setHeaderValue(new ImageIcon(&amp;quot;image.gif&amp;quot;));&lt;br /&gt;
    table.getColumnModel().getColumn(0).setHeaderRenderer(new IconHeaderRenderer());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class IconHeaderRenderer extends DefaultTableCellRenderer {&lt;br /&gt;
  public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,&lt;br /&gt;
      boolean hasFocus, int row, int column) {&lt;br /&gt;
    if (table != null) {&lt;br /&gt;
      JTableHeader header = table.getTableHeader();&lt;br /&gt;
      if (header != null) {&lt;br /&gt;
        setForeground(header.getForeground());&lt;br /&gt;
        setBackground(header.getBackground());&lt;br /&gt;
        setFont(header.getFont());&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    if (value instanceof Icon) {&lt;br /&gt;
      setIcon((Icon) value);&lt;br /&gt;
      setText(&amp;quot;&amp;quot;);&lt;br /&gt;
    } else {&lt;br /&gt;
      setText((value == null) ? &amp;quot;&amp;quot; : value.toString());&lt;br /&gt;
      setIcon(null);&lt;br /&gt;
    }&lt;br /&gt;
    setBorder(UIManager.getBorder(&amp;quot;TableHeader.cellBorder&amp;quot;));&lt;br /&gt;
    setHorizontalAlignment(JLabel.CENTER);&lt;br /&gt;
    return this;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Listening for Clicks on a Column Header in a JTable Component ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.Rectangle;&lt;br /&gt;
import java.awt.event.MouseAdapter;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.table.JTableHeader;&lt;br /&gt;
import javax.swing.table.TableColumnModel;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JTable table = new JTable(5, 5);&lt;br /&gt;
    JTableHeader header = table.getTableHeader();&lt;br /&gt;
    header.addMouseListener(new ColumnHeaderListener());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class ColumnHeaderListener extends MouseAdapter {&lt;br /&gt;
  public void mouseClicked(MouseEvent evt) {&lt;br /&gt;
    JTable table = ((JTableHeader) evt.getSource()).getTable();&lt;br /&gt;
    TableColumnModel colModel = table.getColumnModel();&lt;br /&gt;
    int index = colModel.getColumnIndexAtX(evt.getX());&lt;br /&gt;
    if (index == -1) {&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    Rectangle headerRect = table.getTableHeader().getHeaderRect(index);&lt;br /&gt;
    if (index == 0) {&lt;br /&gt;
      headerRect.width -= 10;&lt;br /&gt;
    } else {&lt;br /&gt;
      headerRect.grow(-10, 0);&lt;br /&gt;
    }&lt;br /&gt;
    if (!headerRect.contains(evt.getX(), evt.getY())) {&lt;br /&gt;
      int vLeftColIndex = index;&lt;br /&gt;
      if (evt.getX() &amp;lt; headerRect.x) {&lt;br /&gt;
        vLeftColIndex--;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Removing Column Headers: provide empty strings as the column header names. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JScrollPane;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
public class EmptyColumnHeader {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    JFrame frame = new JFrame();&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    Object rowData[][] = { { &amp;quot;Row1-Column1&amp;quot;, &amp;quot;Row1-Column2&amp;quot;, &amp;quot;Row1-Column3&amp;quot; },&lt;br /&gt;
        { &amp;quot;Row2-Column1&amp;quot;, &amp;quot;Row2-Column2&amp;quot;, &amp;quot;Row2-Column3&amp;quot; } };&lt;br /&gt;
    Object columnNames[] = { &amp;quot;&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;&amp;quot; };&lt;br /&gt;
    JTable table = new JTable(rowData, columnNames);&lt;br /&gt;
    JScrollPane scrollPane = new JScrollPane(table);&lt;br /&gt;
    frame.add(scrollPane, BorderLayout.CENTER);&lt;br /&gt;
    frame.setSize(300, 150);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Removing the Column Headers from a Scrollable in a JTable Component ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JTable table = new JTable();&lt;br /&gt;
    // Remove the column headers&lt;br /&gt;
    table.setTableHeader(null);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Setting Column Header Tool Tips in a JTable Components ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import java.awt.event.MouseMotionAdapter;&lt;br /&gt;
import java.util.HashMap;&lt;br /&gt;
import java.util.Map;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.table.JTableHeader;&lt;br /&gt;
import javax.swing.table.TableColumn;&lt;br /&gt;
import javax.swing.table.TableColumnModel;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    int rows = 10;&lt;br /&gt;
    int cols = 5;&lt;br /&gt;
    JTable table = new JTable(rows, cols);&lt;br /&gt;
    JTableHeader header = table.getTableHeader();&lt;br /&gt;
    ColumnHeaderToolTips tips = new ColumnHeaderToolTips();&lt;br /&gt;
    for (int c = 0; c &amp;lt; table.getColumnCount(); c++) {&lt;br /&gt;
      TableColumn col = table.getColumnModel().getColumn(c);&lt;br /&gt;
      tips.setToolTip(col, &amp;quot;Col &amp;quot; + c);&lt;br /&gt;
    }&lt;br /&gt;
    header.addMouseMotionListener(tips);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class ColumnHeaderToolTips extends MouseMotionAdapter {&lt;br /&gt;
  TableColumn curCol;&lt;br /&gt;
  Map tips = new HashMap();&lt;br /&gt;
  public void setToolTip(TableColumn col, String tooltip) {&lt;br /&gt;
    if (tooltip == null) {&lt;br /&gt;
      tips.remove(col);&lt;br /&gt;
    } else {&lt;br /&gt;
      tips.put(col, tooltip);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void mouseMoved(MouseEvent evt) {&lt;br /&gt;
    JTableHeader header = (JTableHeader) evt.getSource();&lt;br /&gt;
    JTable table = header.getTable();&lt;br /&gt;
    TableColumnModel colModel = table.getColumnModel();&lt;br /&gt;
    int vColIndex = colModel.getColumnIndexAtX(evt.getX());&lt;br /&gt;
    TableColumn col = null;&lt;br /&gt;
    if (vColIndex &amp;gt;= 0) {&lt;br /&gt;
      col = colModel.getColumn(vColIndex);&lt;br /&gt;
    }&lt;br /&gt;
    if (col != curCol) {&lt;br /&gt;
      header.setToolTipText((String) tips.get(col));&lt;br /&gt;
      curCol = col;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Showing the Table Header in a Non-Scrollable JTable Component ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.table.JTableHeader;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    int rows = 10;&lt;br /&gt;
    int cols = 5;&lt;br /&gt;
    JTable table = new JTable(rows, cols);&lt;br /&gt;
    JTableHeader header = table.getTableHeader();&lt;br /&gt;
    JPanel container = new JPanel(new BorderLayout());&lt;br /&gt;
    // Add header in NORTH slot&lt;br /&gt;
    container.add(header, BorderLayout.NORTH);&lt;br /&gt;
    // Add table itself to CENTER slot&lt;br /&gt;
    container.add(table, BorderLayout.CENTER);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Using Tooltips in Table Headers: Showing Tooltip Text in a Table Header ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JScrollPane;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.table.DefaultTableCellRenderer;&lt;br /&gt;
import javax.swing.table.TableCellRenderer;&lt;br /&gt;
import javax.swing.table.TableColumn;&lt;br /&gt;
import javax.swing.table.TableColumnModel;&lt;br /&gt;
public class LabelHeaderSample {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    final Object rows[][] = { { &amp;quot;one&amp;quot;, &amp;quot;1&amp;quot; }, { &amp;quot;two&amp;quot;, &amp;quot;2&amp;quot; }, { &amp;quot;three&amp;quot;, &amp;quot;3&amp;quot; } };&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;Label Header&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    &lt;br /&gt;
    String headers[] = { &amp;quot;English&amp;quot;, &amp;quot;#&amp;quot; };&lt;br /&gt;
    JTable table = new JTable(rows, headers);&lt;br /&gt;
    JScrollPane scrollPane = new JScrollPane(table);&lt;br /&gt;
    JLabel headerRenderer = new DefaultTableCellRenderer();&lt;br /&gt;
    String columnName = table.getModel().getColumnName(0);&lt;br /&gt;
    headerRenderer.setText(columnName);&lt;br /&gt;
    headerRenderer.setToolTipText(&amp;quot;text&amp;quot;);&lt;br /&gt;
    TableColumnModel columnModel = table.getColumnModel();&lt;br /&gt;
    TableColumn englishColumn = columnModel.getColumn(0);&lt;br /&gt;
    englishColumn.setHeaderRenderer((TableCellRenderer)headerRenderer);&lt;br /&gt;
    &lt;br /&gt;
    frame.add(scrollPane, BorderLayout.CENTER);&lt;br /&gt;
    frame.setSize(300, 150);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>