-
Notifications
You must be signed in to change notification settings - Fork 0
/
JlistRenderer.java
36 lines (33 loc) · 1.03 KB
/
JlistRenderer.java
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
import java.awt.Component;
import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JSeparator;
import javax.swing.ListCellRenderer;
import javax.swing.border.BevelBorder;
public class JlistRenderer extends JLabel implements ListCellRenderer {
JSeparator separator;
public final static String SEPARATOR = "SEPARATOR";
public JlistRenderer() {
setOpaque(true);
setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
separator = new JSeparator(JSeparator.HORIZONTAL);
}
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
String str = (value == null) ? "" : value.toString();
if (str.equals(SEPARATOR)) {
return separator;
}
if (isSelected) {
setBackground(list.getSelectionBackground());
setForeground(list.getSelectionForeground());
} else {
setBackground(list.getBackground());
setForeground(list.getForeground());
}
setFont(list.getFont());
setText(str);
return this;
}
}