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 + -
显示快捷键?