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


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(400200);
    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: