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 />