public static JPanel getPanel() { FormLayout lm = new FormLayout( "fill:pref, 2dlu, fill:pref, 0dlu, fill:min:grow, 0dlu, fill:pref, 2dlu, fill:pref", ""); DefaultFormBuilder builder = new DefaultFormBuilder(lm); builder.setBorder(new EmptyBorder(0, 0, 0, 0)); final JLabel fontSizeLabel = new JLabel(); fontSizeLabel.setText( SubstanceLookAndFeel.getFontPolicy() .getFontSet("Substance", null) .getControlFont() .getSize() + " pt."); builder.append(fontSizeLabel); // fontSizeLabel.add(Box.createHorizontalStrut(5)); Icon zoomOutIcon = Check.configure(new View_zoom_out(), 16); JLabel zoomOutLabel = new JLabel(zoomOutIcon); builder.append(zoomOutLabel); final JSlider fontSizeSlider = new JSlider(0, 10, 0); fontSizeSlider.setFocusable(false); // fontSizeSlider.setOpaque(false); fontSizeSlider.setToolTipText( "Controls the global font set size. Resets Substance as the current LAF."); fontSizeSlider.addChangeListener( new ChangeListener() { public void stateChanged(ChangeEvent e) { // if the value is adjusting - ignore. This is done // to make CPU usage better. if (!fontSizeSlider.getModel().getValueIsAdjusting()) { final int newValue = fontSizeSlider.getValue(); SwingUtilities.invokeLater( new Runnable() { public void run() { SubstanceLookAndFeel.setFontPolicy(null); final FontSet substanceCoreFontSet = SubstanceLookAndFeel.getFontPolicy().getFontSet("Substance", null); FontPolicy newFontPolicy = new FontPolicy() { public FontSet getFontSet(String lafName, UIDefaults table) { return new WrapperFontSet(substanceCoreFontSet, newValue); } }; SubstanceLookAndFeel.setFontPolicy(newFontPolicy); fontSizeLabel.setText( SubstanceLookAndFeel.getFontPolicy() .getFontSet("Substance", null) .getControlFont() .getSize() + " pt."); } }); } } }); builder.append(fontSizeSlider); Icon zoomInIcon = Check.configure(new View_zoom_in(), 16); JLabel zoomInLabel = new JLabel(zoomInIcon); builder.append(zoomInLabel); JButton tahoma = new JButton("Tahoma 11"); tahoma.putClientProperty(SubstanceLookAndFeel.BUTTON_NO_MIN_SIZE_PROPERTY, Boolean.TRUE); tahoma.addActionListener( new ActionListener() { @Override public void actionPerformed(ActionEvent e) { SwingUtilities.invokeLater( new Runnable() { public void run() { SubstanceLookAndFeel.setFontPolicy(null); FontPolicy newFontPolicy = new FontPolicy() { public FontSet getFontSet(String lafName, UIDefaults table) { return new Tahoma11FontSet(); } }; SubstanceLookAndFeel.setFontPolicy(newFontPolicy); fontSizeLabel.setText( SubstanceLookAndFeel.getFontPolicy() .getFontSet("Substance", null) .getControlFont() .getSize() + " pt."); } }); } }); builder.append(tahoma); JPanel result = builder.getPanel(); // result.setOpaque(false); return result; }