Java AbstractAction .putValue (String key, Object newValue)

Syntax

AbstractAction.putValue(String key, Object newValue) has the following syntax.

public void putValue(String key,  Object newValue)

Example

In the following code shows how to use AbstractAction.putValue(String key, Object newValue) method.


/*  w w  w .ja  v a 2s. c o  m*/
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.beans.PropertyChangeListener;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.KeyStroke;

public class Main {
  public static void main(String args[]) {
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    final Action printAction = new PrintHelloAction();

    JMenuBar menuBar = new JMenuBar();
    JMenu menu = new JMenu("File");
    menuBar.add(menu);
    JMenuItem menuItem = new JMenuItem("Print");
    KeyStroke ctrlP = KeyStroke.getKeyStroke(KeyEvent.VK_P,
        InputEvent.CTRL_MASK);
    menuItem.setAccelerator(ctrlP);
    menuItem.addActionListener(printAction);
    menu.add(menuItem);

    JButton fileButton = new JButton("About");
    fileButton.setMnemonic(KeyEvent.VK_A);
    fileButton.addActionListener(printAction);

    frame.setJMenuBar(menuBar);

    frame.add(fileButton, BorderLayout.SOUTH);
    frame.setSize(300, 100);
    frame.setVisible(true);
  }
}

class PrintHelloAction extends AbstractAction {

  PrintHelloAction() {
    super("Print");
    putValue(Action.SHORT_DESCRIPTION, "Hello, World");
    System.out.println(super.getValue(Action.SHORT_DESCRIPTION));
  }

  public void actionPerformed(ActionEvent actionEvent) {
    System.out.println("Hello, World");
  }
}