I have a very simple JFrame with only single JSlider in its North Panel. I want JSlider to be displayed in minimum size by  following method.
slider.putClientProperty("JComponent.sizeVariant", "mini");
but it is still displaying in its normal size. Following trick is not working too.
SwingUtilities.updateComponentTreeUI(this);
Below is a full program.
import java.awt.*;
import javax.swing.*;
public class TestSliderSize extends JFrame {
    public TestSliderSize() {
        setLookNFeel();
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        this.setSize(screenSize.width / 2, screenSize.height / 2);
        JSlider slider = new JSlider(SwingConstants.HORIZONTAL, 0, 50, 10);
        slider.putClientProperty("JComponent.sizeVariant", "mini");
        slider.setMajorTickSpacing(10);
        slider.setMinorTickSpacing(1);
        slider.setPaintTicks(true);
        slider.setPaintLabels(true);
            //SwingUtilities.updateComponentTreeUI(this);
        getContentPane().setLayout(new BorderLayout());
        JPanel centerPanel = new JPanel(new BorderLayout());
        JPanel northPanel = new JPanel(new FlowLayout());
        Dimension d1 = centerPanel.getSize();
        northPanel.setPreferredSize(new Dimension(screenSize.width / 2, 100));
        northPanel.add(slider);
        northPanel.setBackground(Color.BLACK);
        centerPanel.add(northPanel, BorderLayout.NORTH);
        JPanel innerPanel = new JPanel();
        innerPanel.setBackground(Color.ORANGE);
        centerPanel.add(innerPanel, BorderLayout.CENTER);
        SwingUtilities.updateComponentTreeUI(this);
        getContentPane().add(centerPanel, BorderLayout.CENTER);
        this.setVisible(true);
    }
    public static void main(String[] args) {
        new TestSliderSize();
    }
    private void setLookNFeel() {
        try {              //   UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (Exception e1) {
        }
    }
}
Now I want help in displying the slider in minimum size.
 
    
 
    