< prev index next >

src/java.desktop/share/classes/javax/swing/table/JTableHeader.java

Print this page




  25 package javax.swing.table;
  26 
  27 import sun.swing.table.DefaultTableCellHeaderRenderer;
  28 
  29 import java.util.*;
  30 import java.awt.*;
  31 import java.awt.event.*;
  32 
  33 import javax.swing.*;
  34 import javax.swing.event.*;
  35 import javax.swing.plaf.*;
  36 import javax.accessibility.*;
  37 
  38 import java.beans.BeanProperty;
  39 import java.beans.PropertyChangeListener;
  40 import java.beans.Transient;
  41 
  42 import java.io.ObjectOutputStream;
  43 import java.io.IOException;
  44 



  45 /**
  46  * This is the object which manages the header of the <code>JTable</code>.
  47  * <p>
  48  * <strong>Warning:</strong>
  49  * Serialized objects of this class will not be compatible with
  50  * future Swing releases. The current serialization support is
  51  * appropriate for short term storage or RMI between applications running
  52  * the same version of Swing.  As of 1.4, support for long term storage
  53  * of all JavaBeans&trade;
  54  * has been added to the <code>java.beans</code> package.
  55  * Please see {@link java.beans.XMLEncoder}.
  56  *
  57  * @author Alan Chung
  58  * @author Philip Milne
  59  * @see javax.swing.JTable
  60  */
  61 @SuppressWarnings("serial") // Same-version serialization only
  62 public class JTableHeader extends JComponent implements TableColumnModelListener, Accessible
  63 {
  64     /**


 397             if (renderer == null) {
 398                 renderer = defaultRenderer;
 399             }
 400             Component component = renderer.getTableCellRendererComponent(
 401                               getTable(), aColumn.getHeaderValue(), false, false,
 402                               -1, column);
 403 
 404             // Now have to see if the component is a JComponent before
 405             // getting the tip
 406             if (component instanceof JComponent) {
 407                 // Convert the event to the renderer's coordinate system
 408                 MouseEvent newEvent;
 409                 Rectangle cellRect = getHeaderRect(column);
 410 
 411                 p.translate(-cellRect.x, -cellRect.y);
 412                 newEvent = new MouseEvent(component, event.getID(),
 413                                           event.getWhen(), event.getModifiers(),
 414                                           p.x, p.y, event.getXOnScreen(), event.getYOnScreen(),
 415                                           event.getClickCount(),
 416                                           event.isPopupTrigger(), MouseEvent.NOBUTTON);



 417 
 418                 tip = ((JComponent)component).getToolTipText(newEvent);
 419             }
 420         }
 421 
 422         // No tip from the renderer get our own tip
 423         if (tip == null)
 424             tip = getToolTipText();
 425 
 426         return tip;
 427     }
 428 
 429     /**
 430      * Returns the preferred size of the table header.
 431      * This is the size required to display the header and requested for
 432      * the viewport.
 433      * The returned {@code Dimension} {@code width} will always be calculated by
 434      * the underlying TableHeaderUI, regardless of any width specified by
 435      * {@link JComponent#setPreferredSize(java.awt.Dimension)}
 436      *




  25 package javax.swing.table;
  26 
  27 import sun.swing.table.DefaultTableCellHeaderRenderer;
  28 
  29 import java.util.*;
  30 import java.awt.*;
  31 import java.awt.event.*;
  32 
  33 import javax.swing.*;
  34 import javax.swing.event.*;
  35 import javax.swing.plaf.*;
  36 import javax.accessibility.*;
  37 
  38 import java.beans.BeanProperty;
  39 import java.beans.PropertyChangeListener;
  40 import java.beans.Transient;
  41 
  42 import java.io.ObjectOutputStream;
  43 import java.io.IOException;
  44 
  45 import sun.awt.AWTAccessor;
  46 import sun.awt.AWTAccessor.MouseEventAccessor;
  47 
  48 /**
  49  * This is the object which manages the header of the <code>JTable</code>.
  50  * <p>
  51  * <strong>Warning:</strong>
  52  * Serialized objects of this class will not be compatible with
  53  * future Swing releases. The current serialization support is
  54  * appropriate for short term storage or RMI between applications running
  55  * the same version of Swing.  As of 1.4, support for long term storage
  56  * of all JavaBeans&trade;
  57  * has been added to the <code>java.beans</code> package.
  58  * Please see {@link java.beans.XMLEncoder}.
  59  *
  60  * @author Alan Chung
  61  * @author Philip Milne
  62  * @see javax.swing.JTable
  63  */
  64 @SuppressWarnings("serial") // Same-version serialization only
  65 public class JTableHeader extends JComponent implements TableColumnModelListener, Accessible
  66 {
  67     /**


 400             if (renderer == null) {
 401                 renderer = defaultRenderer;
 402             }
 403             Component component = renderer.getTableCellRendererComponent(
 404                               getTable(), aColumn.getHeaderValue(), false, false,
 405                               -1, column);
 406 
 407             // Now have to see if the component is a JComponent before
 408             // getting the tip
 409             if (component instanceof JComponent) {
 410                 // Convert the event to the renderer's coordinate system
 411                 MouseEvent newEvent;
 412                 Rectangle cellRect = getHeaderRect(column);
 413 
 414                 p.translate(-cellRect.x, -cellRect.y);
 415                 newEvent = new MouseEvent(component, event.getID(),
 416                                           event.getWhen(), event.getModifiers(),
 417                                           p.x, p.y, event.getXOnScreen(), event.getYOnScreen(),
 418                                           event.getClickCount(),
 419                                           event.isPopupTrigger(), MouseEvent.NOBUTTON);
 420                 MouseEventAccessor meAccessor = AWTAccessor.getMouseEventAccessor();
 421                 meAccessor.setCausedByTouchEvent(newEvent,
 422                     meAccessor.isCausedByTouchEvent(event));
 423 
 424                 tip = ((JComponent)component).getToolTipText(newEvent);
 425             }
 426         }
 427 
 428         // No tip from the renderer get our own tip
 429         if (tip == null)
 430             tip = getToolTipText();
 431 
 432         return tip;
 433     }
 434 
 435     /**
 436      * Returns the preferred size of the table header.
 437      * This is the size required to display the header and requested for
 438      * the viewport.
 439      * The returned {@code Dimension} {@code width} will always be calculated by
 440      * the underlying TableHeaderUI, regardless of any width specified by
 441      * {@link JComponent#setPreferredSize(java.awt.Dimension)}
 442      *


< prev index next >