Skip to content

Commit 35f5409

Browse files
committed
Checkstyle: LambdaBodyLength
1 parent 43435c8 commit 35f5409

File tree

1 file changed

+35
-27
lines changed

1 file changed

+35
-27
lines changed

examples/SliderCurrentLabelColor/src/java/example/MainPanel.java

Lines changed: 35 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,14 @@
1111
import java.util.concurrent.atomic.AtomicInteger;
1212
import java.util.logging.Logger;
1313
import javax.swing.*;
14+
import javax.swing.event.ChangeEvent;
15+
import javax.swing.event.ChangeListener;
1416

1517
public final class MainPanel extends JPanel {
1618
private MainPanel() {
1719
super(new BorderLayout(5, 5));
1820
JSlider slider1 = makeSlider();
19-
setCurrentLabelListener(slider1);
21+
slider1.getModel().addChangeListener(new SliderLabelChangeListener(slider1));
2022

2123
// @SuppressWarnings("JdkObsolete")
2224
// Dictionary<Integer, Component> labelTable = new Hashtable<>();
@@ -26,7 +28,7 @@ private MainPanel() {
2628
// .forEach(i -> labelTable.put(i, list.get(i)));
2729
List<String> list2 = Arrays.asList("A", "B", "C", "D", "E");
2830
JSlider slider2 = new JSlider(0, list2.size() - 1, 0);
29-
setCurrentLabelListener(slider2);
31+
slider2.getModel().addChangeListener(new SliderLabelChangeListener(slider2));
3032
// slider2.setLabelTable(labelTable);
3133
slider2.setSnapToTicks(true);
3234
slider2.setPaintTicks(true);
@@ -76,31 +78,6 @@ private static JSlider makeSlider() {
7678
return slider;
7779
}
7880

79-
private static void setCurrentLabelListener(JSlider slider) {
80-
AtomicInteger prev = new AtomicInteger(-1);
81-
slider.getModel().addChangeListener(e -> {
82-
BoundedRangeModel m = (BoundedRangeModel) e.getSource();
83-
int i = m.getValue();
84-
int mts = slider.getMajorTickSpacing();
85-
if ((mts == 0 || i % mts == 0) && i != prev.get()) {
86-
Object labelTable = slider.getLabelTable();
87-
if (labelTable instanceof Map) {
88-
Map<?, ?> map = (Map<?, ?>) labelTable;
89-
resetForeground(map.get(i), Color.RED);
90-
resetForeground(map.get(prev.get()), Color.BLACK);
91-
}
92-
slider.repaint();
93-
prev.set(i);
94-
}
95-
});
96-
}
97-
98-
private static void resetForeground(Object o, Color c) {
99-
if (o instanceof Component) {
100-
((Component) o).setForeground(c);
101-
}
102-
}
103-
10481
private static Component makeTitledPanel(String title, Component c) {
10582
JPanel p = new JPanel(new BorderLayout());
10683
p.setBorder(BorderFactory.createTitledBorder(title));
@@ -129,3 +106,34 @@ private static void createAndShowGui() {
129106
frame.setVisible(true);
130107
}
131108
}
109+
110+
class SliderLabelChangeListener implements ChangeListener {
111+
private final AtomicInteger prev = new AtomicInteger(-1);
112+
private final JSlider slider;
113+
114+
protected SliderLabelChangeListener(JSlider slider) {
115+
this.slider = slider;
116+
}
117+
118+
@Override public void stateChanged(ChangeEvent e) {
119+
BoundedRangeModel m = (BoundedRangeModel) e.getSource();
120+
int i = m.getValue();
121+
int mts = slider.getMajorTickSpacing();
122+
if ((mts == 0 || i % mts == 0) && i != prev.get()) {
123+
Object labelTable = slider.getLabelTable();
124+
if (labelTable instanceof Map) {
125+
Map<?, ?> map = (Map<?, ?>) labelTable;
126+
resetForeground(map.get(i), Color.RED);
127+
resetForeground(map.get(prev.get()), Color.BLACK);
128+
}
129+
slider.repaint();
130+
prev.set(i);
131+
}
132+
}
133+
134+
private static void resetForeground(Object o, Color c) {
135+
if (o instanceof Component) {
136+
((Component) o).setForeground(c);
137+
}
138+
}
139+
}

0 commit comments

Comments
 (0)