MySplitPaneUI (A split pane with 3 dots)
28/01/2009
/* * Created on 14 avr. 2006 */ import java.awt.Graphics; import java.awt.event.MouseEvent; import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicSplitPaneDivider; import javax.swing.plaf.basic.BasicSplitPaneUI; /** * MySplitPaneUI is a UI implementation of BasicSplitPaneUI * that does not show any divider. * <pre> * +----------+ * | Changes: | * +----------+ * [19/09/2006] * - Added * </pre> <p> */<br /> public class MySplitPaneUI extends BasicSplitPaneUI {</p> <p> public static ComponentUI createUI(JComponent x) {<br /> return new MySplitPaneUI();<br /> }</p> <p> public BasicSplitPaneDivider createDefaultDivider() {<br /> return new MySplitPaneDivider(this);<br /> }<br /> }</p> <p>class MySplitPaneDivider extends BasicSplitPaneDivider {<br /> float strokeThickness = 2f;<br /> float miterLimit = 2f;<br /> float[] dashPattern = {2f};<br /> float dashPhase = 2f;</p> <p> public MySplitPaneDivider(BasicSplitPaneUI ui) {<br /> super(ui);<br /> ui.getSplitPane().setContinuousLayout(true);<br /> }</p> <p> protected class DragController extends BasicSplitPaneDivider.DragController {<br /> public DragController(MouseEvent event) {<br /> super(event);<br /> }<br /> }</p> <p> public void paint(Graphics g) {<br /> // do not paint any thing ! if you want an invisible split pane (like Eclipse)<br /> // Paint 3 dots<br /> Graphics2D gg = (Graphics2D)g;<br /> gg.setColor(Color.darkGray);<br /> gg.setStroke(new BasicStroke(strokeThickness, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, miterLimit, dashPattern, dashPhase)); </p> <p> if(this.splitPane.getOrientation() == JSplitPane.VERTICAL_SPLIT) {<br /> g.drawLine(getWidth()/2-7, getHeight()/2, getWidth()/2+7, getHeight()/2);<br /> } else {<br /> g.drawLine(getWidth()/2, getHeight()/2-7, getWidth()/2, getHeight()/2+7);<br /> }<br /> }<br /> }<br />