# 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.SubstanceBusinessBlueSteelLookAndFeel;
/**
* 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.
* @throws Exception
* If some exception occured. Note that there is no special
* treatment of exception conditions in <code>this</code> sample
* code.
*/
public static void main(String[] args) throws Exception {
UIManager.setLookAndFeel(new SubstanceBusinessBlueSteelLookAndFeel());
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
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`: