Java JButton Create CreateFlatButton()

Here you can find the source of CreateFlatButton()

Description

Creates a new JButton with the flat appearance.

License

Open Source License

Return

a JButton with the roll over property set and the border customized to show the rollover effect

Declaration

public static JButton CreateFlatButton() 

Method Source Code

//package com.java2s;

import javax.swing.AbstractButton;
import javax.swing.Action;

import javax.swing.JButton;

import javax.swing.JToggleButton;

import javax.swing.UIDefaults;
import javax.swing.UIManager;

import javax.swing.plaf.basic.BasicBorders;
import javax.swing.plaf.basic.BasicButtonUI;

import javax.swing.plaf.basic.BasicToggleButtonUI;

public class Main {
    /** An action property for specifying whether a regualar or toggle button should be created. */
    public static final String TOGGLE_BUTTON = "TOGGLE_BUTTON";

    /**//from w  ww  . j a va 2  s  .c  om
     * Creates a new JButton with the flat appearance.  It uses the same rollover effect as flat buttons
     * in a toolbar. 
     * @return a JButton with the roll over property set and the border customized to show the rollover effect
     */
    public static JButton CreateFlatButton() {
        JButton button = new JButton();
        makeButtonFlat(button);
        return button;
    }

    /**
     * Creates a new JButton with the flat appearance.  
     * It uses the same rollover effect as flat buttons in a toolbar.
     * The TOGGLE_BUTTON boolean property is checked to determine whether to create a toggle
     * button or a regular one (default). 
     * @param action  the action to be hooked up to the button
     * @return a JButton with the roll over property set and the border customized to show the rollover effect
     */
    public static AbstractButton CreateFlatButton(Action action) {
        // Create the button
        boolean toggleButton = false;
        if (action != null) {
            Object toggleButtonObj = action.getValue(TOGGLE_BUTTON);
            toggleButton = (toggleButtonObj instanceof Boolean) ? ((Boolean) toggleButtonObj).booleanValue()
                    : false;
        }

        AbstractButton button = toggleButton ? (AbstractButton) CreateFlatToggleButton() : CreateFlatButton();

        if (action != null) {
            button.setAction(action);
        }

        return button;
    }

    public static void makeButtonFlat(AbstractButton button) {
        // Override the default look and feel: use basic L&F because some L&F (esp. WinXP)
        // ignores the border property
        if (button instanceof JToggleButton) {
            button.setUI(new BasicToggleButtonUI());
        } else {
            button.setUI(new BasicButtonUI());
        }

        button.setRolloverEnabled(true);

        UIDefaults table = UIManager.getLookAndFeelDefaults();
        button.setBorder(new BasicBorders.RolloverButtonBorder(table.getColor("controlShadow"), //$NON-NLS-1$
                table.getColor("controlDkShadow"), //$NON-NLS-1$
                table.getColor("controlHighlight"), //$NON-NLS-1$
                table.getColor("controlLtHighlight"))); //$NON-NLS-1$
    }

    /**
     * Creates a new JToggleButton with the flat appearance.  
     * It uses the same rollover effect as flat buttons in a toolbar.
     * @return a JButton with the roll over property set and the border customized to show the rollover effect
     */
    public static JToggleButton CreateFlatToggleButton() {
        JToggleButton button = new JToggleButton();
        makeButtonFlat(button);
        return button;
    }
}

Related

  1. createButtonPanel()
  2. createButtonRow(List buttons)
  3. createButtonsPanel(JComponent... components)
  4. createCheckbox(String boxlabel, String[] buttons, boolean[] checked, ActionListener al)
  5. createCustomButton(Action a)
  6. createGameRadioButton(String answer, int fontSize)
  7. createHyperlinkButton(String text, String tip, ActionListener action)
  8. createIconButton(Class klass, String resource, String fallbackText)
  9. createIconButton(ImageIcon icon, int dimension, String tooltipText, java.awt.event.ActionListener action)