Accueil > Java > MySplitPaneUI (A split pane with 3 dots)

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

Java

Les commentaires sont fermés.