motifscrollpaneui.java

来自「JAVA 所有包」· Java 代码 · 共 128 行

JAVA
128
字号
/* * @(#)MotifScrollPaneUI.java	1.20 05/11/17 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package com.sun.java.swing.plaf.motif;import javax.swing.*;import javax.swing.border.*;import javax.swing.plaf.*;import javax.swing.plaf.basic.BasicScrollPaneUI;import java.beans.PropertyChangeEvent;import java.beans.PropertyChangeListener;/** * A CDE/Motif L&F implementation of ScrollPaneUI.   * <p> * <strong>Warning:</strong> * Serialized objects of this class will not be compatible with * future Swing releases.  The current serialization support is appropriate * for short term storage or RMI between applications running the same * version of Swing.  A future release of Swing will provide support for * long term persistence. * * @version 1.10 08/28/98 * @author Hans Muller */public class MotifScrollPaneUI extends BasicScrollPaneUI{    private final static Border vsbMarginBorderR = new EmptyBorder(0, 4, 0, 0);    private final static Border vsbMarginBorderL = new EmptyBorder(0, 0, 0, 4);    private final static Border hsbMarginBorder = new EmptyBorder(4, 0, 0, 0);    private CompoundBorder vsbBorder;    private CompoundBorder hsbBorder;    private PropertyChangeListener propertyChangeHandler;    protected void installListeners(JScrollPane scrollPane) {        super.installListeners(scrollPane);	propertyChangeHandler = createPropertyChangeHandler();	scrollPane.addPropertyChangeListener(propertyChangeHandler);    }    protected void uninstallListeners(JScrollPane scrollPane) {        super.uninstallListeners(scrollPane);	scrollPane.removePropertyChangeListener(propertyChangeHandler);    }    private PropertyChangeListener createPropertyChangeHandler() {        return new PropertyChangeListener() {	    public void propertyChange(PropertyChangeEvent e) {		  String propertyName = e.getPropertyName();		  if (propertyName.equals("componentOrientation")) {			JScrollPane pane = (JScrollPane)e.getSource();			JScrollBar vsb = pane.getVerticalScrollBar();			if (vsb != null && vsbBorder != null &&			    vsb.getBorder() == vsbBorder) {			    // The Border on the verticall scrollbar matches			    // what we installed, reset it.			    if (MotifGraphicsUtils.isLeftToRight(pane)) {				vsbBorder = new CompoundBorder(vsbMarginBorderR,						vsbBorder.getInsideBorder());			    } else {				vsbBorder = new CompoundBorder(vsbMarginBorderL,						vsbBorder.getInsideBorder());			    }			    vsb.setBorder(vsbBorder);			}                  }	}};    }    protected void installDefaults(JScrollPane scrollpane) {	super.installDefaults(scrollpane);	JScrollBar vsb = scrollpane.getVerticalScrollBar();	if (vsb != null) {	    if (MotifGraphicsUtils.isLeftToRight(scrollpane)) {	        vsbBorder = new CompoundBorder(vsbMarginBorderR, 					       vsb.getBorder());	    }	    else {	        vsbBorder = new CompoundBorder(vsbMarginBorderL, 					       vsb.getBorder());	    }	    vsb.setBorder(vsbBorder);	}	JScrollBar hsb = scrollpane.getHorizontalScrollBar();	if (hsb != null) {	    hsbBorder = new CompoundBorder(hsbMarginBorder, hsb.getBorder());	    hsb.setBorder(hsbBorder);	}    }    protected void uninstallDefaults(JScrollPane c) {	super.uninstallDefaults(c);	JScrollBar vsb = scrollpane.getVerticalScrollBar();	if (vsb != null) {	    if (vsb.getBorder() == vsbBorder) {		vsb.setBorder(null);	    }	    vsbBorder = null;	}	JScrollBar hsb = scrollpane.getHorizontalScrollBar();	if (hsb != null) {	    if (hsb.getBorder() == hsbBorder) {		hsb.setBorder(null);	    }	    hsbBorder = null;	}    }    public static ComponentUI createUI(JComponent x) {	return new MotifScrollPaneUI();    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?