MarginHighlighter.java
上传用户:zhengdagz
上传日期:2014-03-06
资源大小:1956k
文件大小:1k
源码类别:

xml/soap/webservice

开发平台:

Java

  1. /*
  2.  * $Id: MarginHighlighter.java,v 1.1 2005/06/28 14:08:06 kleopatra Exp $
  3.  *
  4.  * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle,
  5.  * Santa Clara, California 95054, U.S.A. All rights reserved.
  6.  */
  7. package org.jdesktop.demo.swingx.common;
  8. import java.awt.Component;
  9. import javax.swing.BorderFactory;
  10. import javax.swing.JComponent;
  11. import javax.swing.border.Border;
  12. import org.jdesktop.swingx.decorator.ComponentAdapter;
  13. import org.jdesktop.swingx.decorator.Highlighter;
  14. /**
  15.  * Highlighter that applies a border compound from the given marginBorder and
  16.  * the renderer's defaultBorder.
  17.  * 
  18.  * NOTE: this is a quick hack to give a left/right margin to JList.
  19.  * 
  20.  * @author Jeanette Winzenburg
  21.  */
  22. public class MarginHighlighter extends Highlighter {
  23.     private Border marginBorder;
  24.     /**
  25.      * 
  26.      * PRE: marginBorder != null;
  27.      * 
  28.      * @param marginBorder
  29.      */
  30.     public MarginHighlighter(Border marginBorder) {
  31.         if (marginBorder == null)
  32.             throw new NullPointerException("border must not be null");
  33.         this.marginBorder = marginBorder;
  34.     }
  35.     public Component highlight(Component renderer, ComponentAdapter adapter) {
  36.         Border border = ((JComponent) renderer).getBorder();
  37.         if (border != null) {
  38.             border = BorderFactory.createCompoundBorder(border, marginBorder);
  39.         } else {
  40.             border = marginBorder;
  41.         }
  42.         ((JComponent) renderer).setBorder(border);
  43.         return renderer;
  44.     }
  45. }