📄 flatsplitpane.java
字号:
/* * FlatSplitPane.java * * Copyright (C) 2002, 2003, 2004, 2005, 2006 Takis Diakoumis * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */package org.underworldlabs.swing;import java.awt.Component;import javax.swing.BorderFactory;import javax.swing.JButton;import javax.swing.JComponent;import javax.swing.JScrollPane;import javax.swing.JSplitPane;import javax.swing.UIManager;import javax.swing.border.Border;import org.underworldlabs.swing.plaf.FlatSplitPaneUI;/* ---------------------------------------------------------- * CVS NOTE: Changes to the CVS repository prior to the * release of version 3.0.0beta1 has meant a * resetting of CVS revision numbers. * ---------------------------------------------------------- *//** * Simple JSplitPane with line borders. * This is achieved simply by 'nulling' all borders, including the divider itself. * * @author Takis Diakoumis * @version $Revision: 1.5 $ * @date $Date: 2006/06/03 01:23:36 $ */public class FlatSplitPane extends JSplitPane { private int storedDividerLocation; protected static Border lineBorder; static { lineBorder = BorderFactory.createLineBorder(UIManager.getColor("controlShadow")); } public FlatSplitPane() { this(JSplitPane.HORIZONTAL_SPLIT, false, new JButton(UIManager.getString("SplitPane.leftButtonText")), new JButton(UIManager.getString("SplitPane.rightButtonText"))); } public FlatSplitPane(int newOrientation) { this(newOrientation, false); } public FlatSplitPane(int newOrientation, boolean newContinuousLayout) { this(newOrientation, newContinuousLayout, null, null); } public FlatSplitPane(int newOrientation, Component newLeftComponent, Component newRightComponent) { this(newOrientation, false, newLeftComponent, newRightComponent); } public FlatSplitPane(int newOrientation, boolean newContinuousLayout, Component newLeftComponent, Component newRightComponent) { super(newOrientation, false, newLeftComponent, newRightComponent); } public Border getBorder() { return null; } public void updateUI() { setUI(new FlatSplitPaneUI()); } public void storeDividerLocation() { storedDividerLocation = getDividerLocation(); } public void storeDividerLocation(int location) { storedDividerLocation = location; } public void restoreDividerLocation() { if (storedDividerLocation > 0) { setDividerLocation(storedDividerLocation); } else { resetToPreferredSizes(); } } /* public void setTopComponent(Component comp) { setComponentBorder(comp); super.setTopComponent(comp); } public void setLeftComponent(Component comp) { setComponentBorder(comp); super.setLeftComponent(comp); } public void setRightComponent(Component comp) { setComponentBorder(comp); super.setRightComponent(comp); } public void setBottomComponent(Component comp) { setComponentBorder(comp); super.setBottomComponent(comp); } */ protected void setComponentBorder(Component comp) { // TODO: FIX ME!!! ??? // this is a little untidy boolean hasScroller = false; if (comp instanceof JComponent) { JComponent jComponent = (JComponent)comp; Component[] components = jComponent.getComponents(); for (int i = 0; i < components.length; i++) { if (components[i] instanceof JScrollPane) { hasScroller = true; JScrollPane scroller = (JScrollPane)components[i]; scroller.setBorder(lineBorder); break; } } if (!hasScroller) { jComponent.setBorder(lineBorder); } } } public int getStoredDividerLocation() { return storedDividerLocation; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -