Substance look and feel - documentation
Author: substance.dev.java.net
Description: Substance look and feel
Keywords: java, look, feel, skins, plaf, swing, ui, pluggable, substance

# Substance API

View all API methods.

View all client properties.

API method | `public static DecorationAreaType getDecorationType(Component comp)`
Description | Returns the decoration area type of the specified component. Parameters: `comp` - Component. Returns: Decoration area type of the component.
See also | setDecorationType(JComponent, DecorationAreaType) API.
Sample code | `import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; import org.jvnet.substance.SubstanceLookAndFeel; import org.jvnet.substance.painter.decoration.DecorationAreaType; import org.jvnet.substance.skin.BusinessBlackSteelSkin; /** * Test application that shows the use of the * {@link SubstanceLookAndFeel#getDecorationType(java.awt.Component)} API called * on different components. * * @author Kirill Grouchnikov * @see SubstanceLookAndFeel#getDecorationType(java.awt.Component) */ public class GetDecorationType extends JFrame { /** * Creates the main frame for <code>this</code> sample. */ public GetDecorationType() { super("Get decoration type"); this.setLayout(new BorderLayout()); final JTabbedPane tabs = new JTabbedPane(); SubstanceLookAndFeel.setDecorationType(tabs, DecorationAreaType.HEADER); JPanel tab1 = new JPanel(new FlowLayout()); tab1.add(new JTextField("sample")); final JComboBox combo = new JComboBox(new Object[] { "sample" }); tab1.add(combo); SubstanceLookAndFeel.setDecorationType(tab1, DecorationAreaType.NONE); JPanel tab2 = new JPanel(new FlowLayout()); tab2.add(new JTextField("sample2")); tab2.add(new JComboBox(new Object[] { "sample2" })); SubstanceLookAndFeel.setDecorationType(tab2, DecorationAreaType.NONE); tabs.addTab("tab1", tab1); tabs.addTab("tab2", tab2); this.add(tabs, BorderLayout.CENTER); JPanel controlPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); JButton getTypes = new JButton("Get types"); getTypes.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { DecorationAreaType tabsType = SubstanceLookAndFeel .getDecorationType(tabs); DecorationAreaType comboType = SubstanceLookAndFeel .getDecorationType(combo); JOptionPane.showMessageDialog(GetDecorationType.this, "Tabbed pane: " + tabsType.name() + "\n" + "Combo box: " + comboType.name()); } }); } }); controlPanel.add(getTypes); this.add(controlPanel, BorderLayout.SOUTH); this.setSize(400, 200); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } /** * The main method for <code>this</code> sample. The arguments are ignored. * * @param args * Ignored. */ public static void main(String[] args) { JFrame.setDefaultLookAndFeelDecorated(true); JDialog.setDefaultLookAndFeelDecorated(true); SwingUtilities.invokeLater(new Runnable() { public void run() { SubstanceLookAndFeel.setSkin(new BusinessBlackSteelSkin()); new GetDecorationType().setVisible(true); } }); } }` The screenshot below shows application frame with a tabbed pane. The tabbed pane is marked with to be `DecorationAreaType.HEADER` and all the tabs are marked with `DecorationAreaType.NONE`: When this API is called on the tabbed pane, it returns `DecorationAreaType.HEADER`. When it is called on the combobox inside the first tab, it returns `DecorationAreaType.NONE`: