-
Notifications
You must be signed in to change notification settings - Fork 89
Expand file tree
/
Copy pathCustomSplitPane.java
More file actions
50 lines (43 loc) · 1.55 KB
/
CustomSplitPane.java
File metadata and controls
50 lines (43 loc) · 1.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package nodebox.client;
import javax.swing.*;
import javax.swing.plaf.basic.BasicSplitPaneDivider;
import javax.swing.plaf.basic.BasicSplitPaneUI;
import java.awt.*;
/**
* Better looking split divider.
*/
public class CustomSplitPane extends JSplitPane {
public CustomSplitPane(int orientation, Component c1, Component c2) {
super(orientation, c1, c2);
setUI(createUI());
setContinuousLayout(true);
setBorder(null);
setResizeWeight(0.5);
setDividerLocation(0.5);
setDividerSize(7);
}
protected BasicSplitPaneUI createUI() {
return new CustomSplitPaneUI();
}
private class CustomSplitPaneUI extends BasicSplitPaneUI {
@Override
public BasicSplitPaneDivider createDefaultDivider() {
return new BasicSplitPaneDivider(CustomSplitPaneUI.this) {
@Override
public void paint(Graphics g) {
Rectangle r = getBounds();
g.setColor(Color.LIGHT_GRAY);
g.fillRect(r.x, r.y, r.width, r.height);
g.setColor(Color.GRAY);
if (getOrientation() == JSplitPane.VERTICAL_SPLIT) {
g.drawLine(0, 0, r.width, 0);
g.drawLine(0, dividerSize - 1, r.width, dividerSize - 1);
} else {
g.drawLine(0, 0, 0, r.height);
g.drawLine(dividerSize - 1, 0, dividerSize - 1, r.height);
}
}
};
}
}
}