Class AbstractButton

All Implemented Interfaces:
ImageObserver, ItemSelectable, MenuContainer, Serializable, SwingConstants
Direct Known Subclasses:
JButton, JMenuItem, JToggleButton

public abstract class AbstractButton extends JComponent implements ItemSelectable, SwingConstants
Emulator for AbstractButton.
See Also:
  • Field Details

  • Constructor Details

    • AbstractButton

      protected AbstractButton()
    • AbstractButton

      protected AbstractButton(com.vaadin.flow.component.Component peer)
  • Method Details

    • init

      protected void init(String text, Icon icon)
    • paramString

      protected String paramString()
      Overrides:
      paramString in class JComponent
    • getLabel

      public String getLabel()
    • getText

      public String getText()
    • paintBorder

      protected void paintBorder(Graphics arg0)
      Overrides:
      paintBorder in class JComponent
    • setLayout

      public void setLayout(LayoutManager mgr)
      Overrides:
      setLayout in class Container
    • getAction

      public Action getAction()
    • getMnemonic

      public int getMnemonic()
    • isSelected

      public boolean isSelected()
    • setSelected

      public void setSelected(boolean arg0)
      Flips the selection flag and, on an actual change, fires ItemEvent then ChangeEvent — the fan-out DefaultButtonModel.setSelected performs.

      A plain JButton has no visual selected state, but it very much has the selection state: new JButton("go").setSelected(true) then isSelected() answers true on JDK 25, with an ItemEvent and a ChangeEvent delivered on the way. Only the rendering is missing here, which is the half R_decline_effect_only permits dropping. JToggleButton overrides this to coordinate its ButtonGroup and its surrogate's model (D_jradiobutton).

    • doClick

      public void doClick()
    • doClick

      public void doClick(int pressTime)
    • getModel

      public ButtonModel getModel()
      Returns:
      the model setModel(ButtonModel) installed, or null when none was — the button's real state machine is the surrogate's, not reachable through this accessor (SD_sjbutton)
    • setRolloverEnabled

      public void setRolloverEnabled(boolean rolloverEnabled)
    • getIcon

      public Icon getIcon()
    • getDisabledIcon

      public Icon getDisabledIcon()
    • getSelectedIcon

      public Icon getSelectedIcon()
    • getDisabledSelectedIcon

      public Icon getDisabledSelectedIcon()
    • checkVerticalKey

      protected int checkVerticalKey(int key, String exception)
    • checkHorizontalKey

      protected int checkHorizontalKey(int key, String exception)
    • removeNotify

      public void removeNotify()
      Overrides:
      removeNotify in class JComponent
    • isRolloverEnabled

      public boolean isRolloverEnabled()
    • setActionCommand

      public void setActionCommand(String command)
    • getActionCommand

      public String getActionCommand()
    • removeActionListener

      public void removeActionListener(ActionListener l)
    • configurePropertiesFromAction

      protected void configurePropertiesFromAction(Action a)
    • addActionListener

      public void addActionListener(ActionListener l)
    • createActionPropertyChangeListener

      protected PropertyChangeListener createActionPropertyChangeListener(Action a)
    • getHideActionText

      public boolean getHideActionText()
    • setHideActionText

      public void setHideActionText(boolean hideActionText)
    • setDisplayedMnemonicIndex

      public void setDisplayedMnemonicIndex(int index) throws IllegalArgumentException
      Throws:
      IllegalArgumentException
    • setMnemonic

      public void setMnemonic(char mnemonic)
    • setMnemonic

      public void setMnemonic(int mnemonic)
    • setText

      public void setText(String newText)
    • setIcon

      public void setIcon(Icon icon)
    • isBorderPainted

      public boolean isBorderPainted()
    • removeChangeListener

      public void removeChangeListener(ChangeListener l)
    • removeItemListener

      public void removeItemListener(ItemListener l)
      Specified by:
      removeItemListener in interface ItemSelectable
    • createChangeListener

      protected ChangeListener createChangeListener()
    • createActionListener

      protected ActionListener createActionListener()
    • createItemListener

      protected ItemListener createItemListener()
    • addChangeListener

      public void addChangeListener(ChangeListener l)
    • addItemListener

      public void addItemListener(ItemListener l)
      Specified by:
      addItemListener in interface ItemSelectable
    • setUI

      public void setUI(ButtonUI arg0)
    • setDisabledIcon

      public void setDisabledIcon(Icon disabledIcon)
    • setDisabledSelectedIcon

      public void setDisabledSelectedIcon(Icon disabledSelectedIcon)
    • addImpl

      protected void addImpl(Component comp, Object constraints, int index)
      Overrides:
      addImpl in class Container
    • setAction

      public void setAction(Action a)
    • updateUI

      public void updateUI()
      Overrides:
      updateUI in class JComponent
    • getPressedIcon

      public Icon getPressedIcon()
    • getRolloverSelectedIcon

      public Icon getRolloverSelectedIcon()
    • getRolloverIcon

      public Icon getRolloverIcon()
    • imageUpdate

      public boolean imageUpdate(Image arg0, int arg1, int arg2, int arg3, int arg4, int arg5)
      Specified by:
      imageUpdate in interface ImageObserver
      Overrides:
      imageUpdate in class Component
    • setBorderPainted

      public void setBorderPainted(boolean borderPainted)
    • setIconTextGap

      public void setIconTextGap(int iconTextGap)
    • setContentAreaFilled

      public void setContentAreaFilled(boolean contentAreaFilled)
    • getUI

      public ButtonUI getUI()
      Overrides:
      getUI in class JComponent
    • setMargin

      public void setMargin(Insets margin)
    • getMargin

      public Insets getMargin()
    • setPressedIcon

      public void setPressedIcon(Icon pressedIcon)
    • setSelectedIcon

      public void setSelectedIcon(Icon selectedIcon)
    • setRolloverIcon

      public void setRolloverIcon(Icon rolloverIcon)
    • setRolloverSelectedIcon

      public void setRolloverSelectedIcon(Icon rolloverSelectedIcon)
    • getVerticalAlignment

      public int getVerticalAlignment()
    • setVerticalAlignment

      public void setVerticalAlignment(int alignment)
    • getHorizontalAlignment

      public int getHorizontalAlignment()
    • setHorizontalAlignment

      public void setHorizontalAlignment(int alignment)
    • getVerticalTextPosition

      public int getVerticalTextPosition()
    • setVerticalTextPosition

      public void setVerticalTextPosition(int textPosition)
    • getHorizontalTextPosition

      public int getHorizontalTextPosition()
    • setHorizontalTextPosition

      public void setHorizontalTextPosition(int textPosition)
    • getIconTextGap

      public int getIconTextGap()
    • actionPropertyChanged

      protected void actionPropertyChanged(Action a, String propertyName)
    • isFocusPainted

      public boolean isFocusPainted()
    • setFocusPainted

      public void setFocusPainted(boolean focusPainted)
    • isContentAreaFilled

      public boolean isContentAreaFilled()
    • getDisplayedMnemonicIndex

      public int getDisplayedMnemonicIndex()
    • setMultiClickThreshhold

      public void setMultiClickThreshhold(long threshhold)
    • getMultiClickThreshhold

      public long getMultiClickThreshhold()
    • setModel

      public void setModel(ButtonModel arg0)
      Installs a user-supplied ButtonModel: getModel() reports it from here on, the JDK's super.setEnabled(model .isEnabled()) propagation runs, and "model" fires. The model itself is inert — the button's state machine lives in the surrogate's own ButtonModel (SD_sjbutton), so a foreign model receives no pressed/armed/selected pulses and drives nothing. That is the declined effect; the state and notification are owed (R_decline_effect_only, D_owed_events).

      The JDK's listener rewiring (ChangeListener / ActionListener / ItemListener onto the new model) is part of the same declined effect, and its updateMnemonicProperties / updateDisplayedMnemonicIndex calls are R_layouts_close_enough rendering.

      getModel() keeps returning null for a button whose model was never set, which is what it did before — so this changes nothing for code that never installs one.

    • getChangeListeners

      public ChangeListener[] getChangeListeners()
    • fireStateChanged

      protected void fireStateChanged()
    • getActionListeners

      public ActionListener[] getActionListeners()
    • fireActionPerformed

      protected void fireActionPerformed(ActionEvent event)
    • fireItemStateChanged

      protected void fireItemStateChanged(ItemEvent event)
    • setLabel

      public void setLabel(String label)
    • getItemListeners

      public ItemListener[] getItemListeners()
    • getSelectedObjects

      public Object[] getSelectedObjects()
      Specified by:
      getSelectedObjects in interface ItemSelectable