mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2026-02-11 14:37:13 -06:00
Slider: support per component custom thumb and track colors
This commit is contained in:
@@ -214,6 +214,13 @@ public class FlatComponentsTest
|
||||
slider.setSnapToTicks( snapToTicks );
|
||||
}
|
||||
|
||||
private void sliderBorderChanged() {
|
||||
boolean border = sliderBorderCheckBox.isSelected();
|
||||
UIManager.put( "Slider.thumbBorderColor", border ? Color.green : null );
|
||||
for( JSlider slider : allSliders )
|
||||
slider.updateUI();
|
||||
}
|
||||
|
||||
private void majorThickSpacingChanged() {
|
||||
int majorTickSpacing = (Integer) majorTickSpacingSpinner.getValue();
|
||||
for( JSlider slider : directionalSliders ) {
|
||||
@@ -395,6 +402,7 @@ public class FlatComponentsTest
|
||||
sliderInvertedCheckBox = new JCheckBox();
|
||||
sliderSnapToTicksCheckBox = new JCheckBox();
|
||||
majorTickSpacingSpinner = new JSpinner();
|
||||
sliderBorderCheckBox = new JCheckBox();
|
||||
minorTickSpacingSpinner = new JSpinner();
|
||||
sliderValueLabel = new JLabel();
|
||||
JPanel panel7 = new JPanel();
|
||||
@@ -1381,10 +1389,15 @@ public class FlatComponentsTest
|
||||
majorTickSpacingSpinner.addChangeListener(e -> majorThickSpacingChanged());
|
||||
panel6.add(majorTickSpacingSpinner, "cell 0 2");
|
||||
|
||||
//---- sliderBorderCheckBox ----
|
||||
sliderBorderCheckBox.setText("border");
|
||||
sliderBorderCheckBox.addActionListener(e -> sliderBorderChanged());
|
||||
panel6.add(sliderBorderCheckBox, "cell 0 2");
|
||||
|
||||
//---- minorTickSpacingSpinner ----
|
||||
minorTickSpacingSpinner.setModel(new SpinnerNumberModel(10, 0, 100, 5));
|
||||
minorTickSpacingSpinner.addChangeListener(e -> minorThickSpacingChanged());
|
||||
panel6.add(minorTickSpacingSpinner, "cell 0 2");
|
||||
panel6.add(minorTickSpacingSpinner, "cell 0 3");
|
||||
|
||||
//---- sliderValueLabel ----
|
||||
sliderValueLabel.setText("slider value");
|
||||
@@ -1625,6 +1638,7 @@ public class FlatComponentsTest
|
||||
private JCheckBox sliderInvertedCheckBox;
|
||||
private JCheckBox sliderSnapToTicksCheckBox;
|
||||
private JSpinner majorTickSpacingSpinner;
|
||||
private JCheckBox sliderBorderCheckBox;
|
||||
private JSpinner minorTickSpacingSpinner;
|
||||
private JLabel sliderValueLabel;
|
||||
private JCheckBox indeterminateCheckBox;
|
||||
|
||||
@@ -1243,6 +1243,16 @@ new FormModel {
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 0 2"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JCheckBox" ) {
|
||||
name: "sliderBorderCheckBox"
|
||||
"text": "border"
|
||||
auxiliary() {
|
||||
"JavaCodeGenerator.variableLocal": false
|
||||
}
|
||||
addEvent( new FormEvent( "java.awt.event.ActionListener", "actionPerformed", "sliderBorderChanged", false ) )
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 0 2"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JSpinner" ) {
|
||||
name: "minorTickSpacingSpinner"
|
||||
"model": new javax.swing.SpinnerNumberModel( 10, 0, 100, 5 )
|
||||
@@ -1251,7 +1261,7 @@ new FormModel {
|
||||
}
|
||||
addEvent( new FormEvent( "javax.swing.event.ChangeListener", "stateChanged", "minorThickSpacingChanged", false ) )
|
||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||
"value": "cell 0 2"
|
||||
"value": "cell 0 3"
|
||||
} )
|
||||
add( new FormComponent( "javax.swing.JLabel" ) {
|
||||
name: "sliderValueLabel"
|
||||
|
||||
@@ -446,7 +446,7 @@ public class FlatTestFrame
|
||||
Color green = dark ? Color.green.darker() : Color.green;
|
||||
|
||||
updateComponentsRecur( content, (c, type) -> {
|
||||
if( type == "view" || type == "tab" ) {
|
||||
if( type == "view" || type == "tab" || c instanceof JSlider ) {
|
||||
c.setForeground( explicit ? magenta : restoreColor );
|
||||
c.setBackground( explicit ? orange : restoreColor );
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user