<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_by_API%2Fjavax.swing%2FAction</id>
		<title>Java by API/javax.swing/Action - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_by_API%2Fjavax.swing%2FAction"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_by_API/javax.swing/Action&amp;action=history"/>
		<updated>2026-04-19T13:28:40Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_by_API/javax.swing/Action&amp;diff=695&amp;oldid=prev</id>
		<title> в 17:43, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_by_API/javax.swing/Action&amp;diff=695&amp;oldid=prev"/>
				<updated>2010-05-31T17:43:48Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 17:43, 31 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_by_API/javax.swing/Action&amp;diff=696&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_by_API/javax.swing/Action&amp;diff=696&amp;oldid=prev"/>
				<updated>2010-05-31T14:19:28Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Action.MNEMONIC_KEY ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import java.awt.Container;&lt;br /&gt;
import java.awt.EventQueue;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.awt.event.KeyEvent;&lt;br /&gt;
import javax.swing.AbstractAction;&lt;br /&gt;
import javax.swing.Action;&lt;br /&gt;
import javax.swing.Icon;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JOptionPane;&lt;br /&gt;
import javax.swing.JScrollPane;&lt;br /&gt;
import javax.swing.JTextArea;&lt;br /&gt;
import javax.swing.JToolBar;&lt;br /&gt;
import javax.swing.plaf.metal.MetalIconFactory;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] a) {&lt;br /&gt;
    final int STRING_POSITION = 1;&lt;br /&gt;
    Object buttonColors[][] = { { Color.RED, &amp;quot;RED&amp;quot; }, { Color.BLUE, &amp;quot;BLUE&amp;quot; },&lt;br /&gt;
        { Color.GREEN, &amp;quot;GREEN&amp;quot; }, { Color.BLACK, &amp;quot;BLACK&amp;quot; }, null, // separator&lt;br /&gt;
        { Color.CYAN, &amp;quot;CYAN&amp;quot; } };&lt;br /&gt;
    JFrame frame = new JFrame();&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    ActionListener actionListener = new TheActionListener();&lt;br /&gt;
    JToolBar toolbar = new JToolBar();&lt;br /&gt;
    toolbar.setRollover(true);&lt;br /&gt;
    for (Object[] color : buttonColors) {&lt;br /&gt;
      if (color == null) {&lt;br /&gt;
        toolbar.addSeparator();&lt;br /&gt;
      } else {&lt;br /&gt;
        Icon icon = MetalIconFactory.getTreeComputerIcon();&lt;br /&gt;
        JButton button = new JButton(icon);&lt;br /&gt;
        button.setActionCommand((String) color[STRING_POSITION]);&lt;br /&gt;
        button.addActionListener(actionListener);&lt;br /&gt;
        toolbar.add(button);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    Action action = new ShowAction(toolbar);&lt;br /&gt;
    JButton button = new JButton(action);&lt;br /&gt;
    toolbar.add(button);&lt;br /&gt;
    Container contentPane = frame.getContentPane();&lt;br /&gt;
    contentPane.add(toolbar, BorderLayout.NORTH);&lt;br /&gt;
    JTextArea textArea = new JTextArea();&lt;br /&gt;
    JScrollPane pane = new JScrollPane(textArea);&lt;br /&gt;
    contentPane.add(pane, BorderLayout.CENTER);&lt;br /&gt;
    frame.setSize(350, 150);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public static class TheActionListener implements ActionListener {&lt;br /&gt;
    public void actionPerformed(ActionEvent actionEvent) {&lt;br /&gt;
      System.out.println(actionEvent.getActionCommand());&lt;br /&gt;
    }&lt;br /&gt;
  };&lt;br /&gt;
}&lt;br /&gt;
class ShowAction extends AbstractAction {&lt;br /&gt;
  Component parentComponent;&lt;br /&gt;
  public ShowAction(Component parentComponent) {&lt;br /&gt;
    super(&amp;quot;About&amp;quot;);&lt;br /&gt;
    putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_A));&lt;br /&gt;
    putValue(Action.SMALL_ICON, MetalIconFactory.getFileChooserHomeFolderIcon());&lt;br /&gt;
    this.parentComponent = parentComponent;&lt;br /&gt;
  }&lt;br /&gt;
  public void actionPerformed(ActionEvent actionEvent) {&lt;br /&gt;
        JOptionPane.showMessageDialog(parentComponent, &amp;quot;About Swing&amp;quot;,&lt;br /&gt;
            &amp;quot;About Box V2.0&amp;quot;, JOptionPane.INFORMATION_MESSAGE);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Action.NAME ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Font;&lt;br /&gt;
import java.awt.GridLayout;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.KeyEvent;&lt;br /&gt;
import javax.swing.AbstractAction;&lt;br /&gt;
import javax.swing.Action;&lt;br /&gt;
import javax.swing.BorderFactory;&lt;br /&gt;
import javax.swing.ImageIcon;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JMenu;&lt;br /&gt;
import javax.swing.JMenuBar;&lt;br /&gt;
import javax.swing.JMenuItem;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
public class MainClass extends JFrame {&lt;br /&gt;
  public static final int MIN_NUMBER = 2;&lt;br /&gt;
  public static final int MAX_NUMBER = 13;&lt;br /&gt;
  private int currentNumber = MIN_NUMBER;&lt;br /&gt;
  private int favoriteNumber = 9;&lt;br /&gt;
  private JLabel numberLabel = new JLabel();&lt;br /&gt;
  private Action upAction = new UpAction();&lt;br /&gt;
  private Action downAction = new DownAction();&lt;br /&gt;
  private GotoFavoriteAction gotoFavoriteAction = new GotoFavoriteAction();&lt;br /&gt;
  private Action setFavoriteAction = new SetFavoriteAction();&lt;br /&gt;
  public class UpAction extends AbstractAction {&lt;br /&gt;
    public UpAction() {&lt;br /&gt;
      putValue(NAME, &amp;quot;Number Add&amp;quot;);&lt;br /&gt;
      putValue(SMALL_ICON, new ImageIcon(&amp;quot;images/up.gif&amp;quot;));&lt;br /&gt;
      putValue(SHORT_DESCRIPTION, &amp;quot;Increment the number&amp;quot;);&lt;br /&gt;
      putValue(MNEMONIC_KEY, new Integer(KeyEvent.VK_A));&lt;br /&gt;
    }&lt;br /&gt;
    public void actionPerformed(ActionEvent ae) {&lt;br /&gt;
      setChannel(currentNumber + 1);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public class DownAction extends AbstractAction {&lt;br /&gt;
    public DownAction() {&lt;br /&gt;
      putValue(NAME, &amp;quot;Number Down&amp;quot;);&lt;br /&gt;
      putValue(SMALL_ICON, new ImageIcon(&amp;quot;images/down.gif&amp;quot;));&lt;br /&gt;
      putValue(SHORT_DESCRIPTION, &amp;quot;Decrement the number&amp;quot;);&lt;br /&gt;
      putValue(MNEMONIC_KEY, new Integer(KeyEvent.VK_D));&lt;br /&gt;
    }&lt;br /&gt;
    public void actionPerformed(ActionEvent ae) {&lt;br /&gt;
      setChannel(currentNumber - 1);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public class GotoFavoriteAction extends AbstractAction {&lt;br /&gt;
    public GotoFavoriteAction() {&lt;br /&gt;
      putValue(SMALL_ICON, new ImageIcon(&amp;quot;images/fav.gif&amp;quot;));&lt;br /&gt;
      putValue(MNEMONIC_KEY, new Integer(KeyEvent.VK_G));&lt;br /&gt;
      updateProperties();&lt;br /&gt;
    }&lt;br /&gt;
    public void updateProperties() {&lt;br /&gt;
      putValue(NAME, &amp;quot;Go to number &amp;quot; + favoriteNumber);&lt;br /&gt;
      putValue(SHORT_DESCRIPTION, &amp;quot;Change the number to &amp;quot; + favoriteNumber);&lt;br /&gt;
    }&lt;br /&gt;
    public void actionPerformed(ActionEvent ae) {&lt;br /&gt;
      setChannel(favoriteNumber);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public class SetFavoriteAction extends AbstractAction {&lt;br /&gt;
    public SetFavoriteAction() {&lt;br /&gt;
      putValue(NAME, &amp;quot;Set &amp;quot;Go to&amp;quot; number&amp;quot;);&lt;br /&gt;
      putValue(SMALL_ICON, new ImageIcon(&amp;quot;images/set.gif&amp;quot;));&lt;br /&gt;
      putValue(SHORT_DESCRIPTION, &amp;quot;Make current number the Favorite number&amp;quot;);&lt;br /&gt;
      putValue(MNEMONIC_KEY, new Integer(KeyEvent.VK_S));&lt;br /&gt;
    }&lt;br /&gt;
    public void actionPerformed(ActionEvent ae) {&lt;br /&gt;
      favoriteNumber = currentNumber;&lt;br /&gt;
      gotoFavoriteAction.updateProperties();&lt;br /&gt;
      setEnabled(false);&lt;br /&gt;
      gotoFavoriteAction.setEnabled(false);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public MainClass() {&lt;br /&gt;
    super();&lt;br /&gt;
    setChannel(currentNumber);&lt;br /&gt;
    numberLabel.setHorizontalAlignment(JLabel.CENTER);&lt;br /&gt;
    numberLabel.setFont(new Font(&amp;quot;Serif&amp;quot;, Font.PLAIN, 32));&lt;br /&gt;
    getContentPane().add(numberLabel, BorderLayout.NORTH);&lt;br /&gt;
    JPanel buttonPanel = new JPanel(new GridLayout(2, 2, 16, 6));&lt;br /&gt;
    buttonPanel.setBorder(BorderFactory.createEmptyBorder(6, 16, 16, 16));&lt;br /&gt;
    getContentPane().add(buttonPanel, BorderLayout.CENTER);&lt;br /&gt;
    buttonPanel.add(new JButton(upAction));&lt;br /&gt;
    buttonPanel.add(new JButton(gotoFavoriteAction));&lt;br /&gt;
    buttonPanel.add(new JButton(downAction));&lt;br /&gt;
    buttonPanel.add(new JButton(setFavoriteAction));&lt;br /&gt;
    JMenuBar mb = new JMenuBar();&lt;br /&gt;
    JMenu menu = new JMenu(&amp;quot;Number&amp;quot;);&lt;br /&gt;
    menu.add(new JMenuItem(upAction));&lt;br /&gt;
    menu.add(new JMenuItem(downAction));&lt;br /&gt;
    menu.addSeparator();&lt;br /&gt;
    menu.add(new JMenuItem(gotoFavoriteAction));&lt;br /&gt;
    menu.add(new JMenuItem(setFavoriteAction));&lt;br /&gt;
    mb.add(menu);&lt;br /&gt;
    setJMenuBar(mb);&lt;br /&gt;
  }&lt;br /&gt;
  public void setChannel(int chan) {&lt;br /&gt;
    currentNumber = chan;&lt;br /&gt;
    numberLabel.setText(&amp;quot;Now tuned to number: &amp;quot; + currentNumber);&lt;br /&gt;
    downAction.setEnabled(currentNumber &amp;gt; MIN_NUMBER);&lt;br /&gt;
    upAction.setEnabled(currentNumber &amp;lt; MAX_NUMBER);&lt;br /&gt;
    gotoFavoriteAction.setEnabled(currentNumber != favoriteNumber);&lt;br /&gt;
    setFavoriteAction.setEnabled(currentNumber != favoriteNumber);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String argv[]) {&lt;br /&gt;
    JFrame f = new MainClass();&lt;br /&gt;
    f.setSize(400, 180);&lt;br /&gt;
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    f.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Action: setEnabled(boolean b) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Font;&lt;br /&gt;
import java.awt.GridLayout;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.KeyEvent;&lt;br /&gt;
import javax.swing.AbstractAction;&lt;br /&gt;
import javax.swing.Action;&lt;br /&gt;
import javax.swing.BorderFactory;&lt;br /&gt;
import javax.swing.ImageIcon;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JMenu;&lt;br /&gt;
import javax.swing.JMenuBar;&lt;br /&gt;
import javax.swing.JMenuItem;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
public class MainClass extends JFrame {&lt;br /&gt;
  public static final int MIN_NUMBER = 2;&lt;br /&gt;
  public static final int MAX_NUMBER = 13;&lt;br /&gt;
  private int currentNumber = MIN_NUMBER;&lt;br /&gt;
  private int favoriteNumber = 9;&lt;br /&gt;
  private JLabel numberLabel = new JLabel();&lt;br /&gt;
  private Action upAction = new UpAction();&lt;br /&gt;
  private Action downAction = new DownAction();&lt;br /&gt;
  private GotoFavoriteAction gotoFavoriteAction = new GotoFavoriteAction();&lt;br /&gt;
  private Action setFavoriteAction = new SetFavoriteAction();&lt;br /&gt;
  public class UpAction extends AbstractAction {&lt;br /&gt;
    public UpAction() {&lt;br /&gt;
      putValue(NAME, &amp;quot;Number Add&amp;quot;);&lt;br /&gt;
      putValue(SMALL_ICON, new ImageIcon(&amp;quot;images/up.gif&amp;quot;));&lt;br /&gt;
      putValue(SHORT_DESCRIPTION, &amp;quot;Increment the number&amp;quot;);&lt;br /&gt;
      putValue(MNEMONIC_KEY, new Integer(KeyEvent.VK_A));&lt;br /&gt;
    }&lt;br /&gt;
    public void actionPerformed(ActionEvent ae) {&lt;br /&gt;
      setChannel(currentNumber + 1);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public class DownAction extends AbstractAction {&lt;br /&gt;
    public DownAction() {&lt;br /&gt;
      putValue(NAME, &amp;quot;Number Down&amp;quot;);&lt;br /&gt;
      putValue(SMALL_ICON, new ImageIcon(&amp;quot;images/down.gif&amp;quot;));&lt;br /&gt;
      putValue(SHORT_DESCRIPTION, &amp;quot;Decrement the number&amp;quot;);&lt;br /&gt;
      putValue(MNEMONIC_KEY, new Integer(KeyEvent.VK_D));&lt;br /&gt;
    }&lt;br /&gt;
    public void actionPerformed(ActionEvent ae) {&lt;br /&gt;
      setChannel(currentNumber - 1);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public class GotoFavoriteAction extends AbstractAction {&lt;br /&gt;
    public GotoFavoriteAction() {&lt;br /&gt;
      putValue(SMALL_ICON, new ImageIcon(&amp;quot;images/fav.gif&amp;quot;));&lt;br /&gt;
      putValue(MNEMONIC_KEY, new Integer(KeyEvent.VK_G));&lt;br /&gt;
      updateProperties();&lt;br /&gt;
    }&lt;br /&gt;
    public void updateProperties() {&lt;br /&gt;
      putValue(NAME, &amp;quot;Go to number &amp;quot; + favoriteNumber);&lt;br /&gt;
      putValue(SHORT_DESCRIPTION, &amp;quot;Change the number to &amp;quot; + favoriteNumber);&lt;br /&gt;
    }&lt;br /&gt;
    public void actionPerformed(ActionEvent ae) {&lt;br /&gt;
      setChannel(favoriteNumber);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public class SetFavoriteAction extends AbstractAction {&lt;br /&gt;
    public SetFavoriteAction() {&lt;br /&gt;
      putValue(NAME, &amp;quot;Set &amp;quot;Go to&amp;quot; number&amp;quot;);&lt;br /&gt;
      putValue(SMALL_ICON, new ImageIcon(&amp;quot;images/set.gif&amp;quot;));&lt;br /&gt;
      putValue(SHORT_DESCRIPTION, &amp;quot;Make current number the Favorite number&amp;quot;);&lt;br /&gt;
      putValue(MNEMONIC_KEY, new Integer(KeyEvent.VK_S));&lt;br /&gt;
    }&lt;br /&gt;
    public void actionPerformed(ActionEvent ae) {&lt;br /&gt;
      favoriteNumber = currentNumber;&lt;br /&gt;
      gotoFavoriteAction.updateProperties();&lt;br /&gt;
      setEnabled(false);&lt;br /&gt;
      gotoFavoriteAction.setEnabled(false);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public MainClass() {&lt;br /&gt;
    super();&lt;br /&gt;
    setChannel(currentNumber);&lt;br /&gt;
    numberLabel.setHorizontalAlignment(JLabel.CENTER);&lt;br /&gt;
    numberLabel.setFont(new Font(&amp;quot;Serif&amp;quot;, Font.PLAIN, 32));&lt;br /&gt;
    getContentPane().add(numberLabel, BorderLayout.NORTH);&lt;br /&gt;
    JPanel buttonPanel = new JPanel(new GridLayout(2, 2, 16, 6));&lt;br /&gt;
    buttonPanel.setBorder(BorderFactory.createEmptyBorder(6, 16, 16, 16));&lt;br /&gt;
    getContentPane().add(buttonPanel, BorderLayout.CENTER);&lt;br /&gt;
    buttonPanel.add(new JButton(upAction));&lt;br /&gt;
    buttonPanel.add(new JButton(gotoFavoriteAction));&lt;br /&gt;
    buttonPanel.add(new JButton(downAction));&lt;br /&gt;
    buttonPanel.add(new JButton(setFavoriteAction));&lt;br /&gt;
    JMenuBar mb = new JMenuBar();&lt;br /&gt;
    JMenu menu = new JMenu(&amp;quot;Number&amp;quot;);&lt;br /&gt;
    menu.add(new JMenuItem(upAction));&lt;br /&gt;
    menu.add(new JMenuItem(downAction));&lt;br /&gt;
    menu.addSeparator();&lt;br /&gt;
    menu.add(new JMenuItem(gotoFavoriteAction));&lt;br /&gt;
    menu.add(new JMenuItem(setFavoriteAction));&lt;br /&gt;
    mb.add(menu);&lt;br /&gt;
    setJMenuBar(mb);&lt;br /&gt;
  }&lt;br /&gt;
  public void setChannel(int chan) {&lt;br /&gt;
    currentNumber = chan;&lt;br /&gt;
    numberLabel.setText(&amp;quot;Now tuned to number: &amp;quot; + currentNumber);&lt;br /&gt;
    downAction.setEnabled(currentNumber &amp;gt; MIN_NUMBER);&lt;br /&gt;
    upAction.setEnabled(currentNumber &amp;lt; MAX_NUMBER);&lt;br /&gt;
    gotoFavoriteAction.setEnabled(currentNumber != favoriteNumber);&lt;br /&gt;
    setFavoriteAction.setEnabled(currentNumber != favoriteNumber);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String argv[]) {&lt;br /&gt;
    JFrame f = new MainClass();&lt;br /&gt;
    f.setSize(400, 180);&lt;br /&gt;
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    f.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Action.SHORT_DESCRIPTION ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.InputEvent;&lt;br /&gt;
import java.awt.event.KeyEvent;&lt;br /&gt;
import javax.swing.AbstractAction;&lt;br /&gt;
import javax.swing.Action;&lt;br /&gt;
import javax.swing.Icon;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JMenu;&lt;br /&gt;
import javax.swing.JMenuBar;&lt;br /&gt;
import javax.swing.JMenuItem;&lt;br /&gt;
import javax.swing.KeyStroke;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;Mnemonic/Accelerator Sample&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    final Action printAction = new PrintHelloAction();&lt;br /&gt;
    JMenuBar menuBar = new JMenuBar();&lt;br /&gt;
    JMenu menu = new JMenu(&amp;quot;File&amp;quot;);&lt;br /&gt;
    menuBar.add(menu);&lt;br /&gt;
    JMenuItem menuItem = new JMenuItem(&amp;quot;Print&amp;quot;);&lt;br /&gt;
    KeyStroke ctrlP = KeyStroke.getKeyStroke(KeyEvent.VK_P,&lt;br /&gt;
        InputEvent.CTRL_MASK);&lt;br /&gt;
    menuItem.setAccelerator(ctrlP);&lt;br /&gt;
    menuItem.addActionListener(printAction);&lt;br /&gt;
    menu.add(menuItem);&lt;br /&gt;
    JButton fileButton = new JButton(&amp;quot;About&amp;quot;);&lt;br /&gt;
    fileButton.setMnemonic(KeyEvent.VK_A);&lt;br /&gt;
    fileButton.addActionListener(printAction);&lt;br /&gt;
    frame.setJMenuBar(menuBar);&lt;br /&gt;
    frame.add(fileButton, BorderLayout.SOUTH);&lt;br /&gt;
    frame.setSize(300, 100);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class PrintHelloAction extends AbstractAction {&lt;br /&gt;
  private static final Icon printIcon = new MyIcon();&lt;br /&gt;
  PrintHelloAction() {&lt;br /&gt;
    super(&amp;quot;Print&amp;quot;, printIcon);&lt;br /&gt;
    putValue(Action.SHORT_DESCRIPTION, &amp;quot;Hello, World&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  public void actionPerformed(ActionEvent actionEvent) {&lt;br /&gt;
    System.out.println(&amp;quot;Hello, World&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class MyIcon implements Icon {&lt;br /&gt;
  public int getIconWidth() {&lt;br /&gt;
    return 32;&lt;br /&gt;
  }&lt;br /&gt;
  public int getIconHeight() {&lt;br /&gt;
    return 32;&lt;br /&gt;
  }&lt;br /&gt;
  public void paintIcon(Component c, Graphics g, int x, int y) {&lt;br /&gt;
    g.drawString(&amp;quot;jexp.ru&amp;quot;, 0, 20);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Action.SMALL_ICON ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import java.awt.Container;&lt;br /&gt;
import java.awt.EventQueue;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.awt.event.KeyEvent;&lt;br /&gt;
import javax.swing.AbstractAction;&lt;br /&gt;
import javax.swing.Action;&lt;br /&gt;
import javax.swing.Icon;&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JOptionPane;&lt;br /&gt;
import javax.swing.JScrollPane;&lt;br /&gt;
import javax.swing.JTextArea;&lt;br /&gt;
import javax.swing.JToolBar;&lt;br /&gt;
import javax.swing.plaf.metal.MetalIconFactory;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] a) {&lt;br /&gt;
    final int STRING_POSITION = 1;&lt;br /&gt;
    Object buttonColors[][] = { { Color.RED, &amp;quot;RED&amp;quot; }, { Color.BLUE, &amp;quot;BLUE&amp;quot; },&lt;br /&gt;
        { Color.GREEN, &amp;quot;GREEN&amp;quot; }, { Color.BLACK, &amp;quot;BLACK&amp;quot; }, null, // separator&lt;br /&gt;
        { Color.CYAN, &amp;quot;CYAN&amp;quot; } };&lt;br /&gt;
    JFrame frame = new JFrame();&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    ActionListener actionListener = new TheActionListener();&lt;br /&gt;
    JToolBar toolbar = new JToolBar();&lt;br /&gt;
    toolbar.setRollover(true);&lt;br /&gt;
    for (Object[] color : buttonColors) {&lt;br /&gt;
      if (color == null) {&lt;br /&gt;
        toolbar.addSeparator();&lt;br /&gt;
      } else {&lt;br /&gt;
        Icon icon = MetalIconFactory.getTreeComputerIcon();&lt;br /&gt;
        JButton button = new JButton(icon);&lt;br /&gt;
        button.setActionCommand((String) color[STRING_POSITION]);&lt;br /&gt;
        button.addActionListener(actionListener);&lt;br /&gt;
        toolbar.add(button);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    Action action = new ShowAction(toolbar);&lt;br /&gt;
    JButton button = new JButton(action);&lt;br /&gt;
    toolbar.add(button);&lt;br /&gt;
    Container contentPane = frame.getContentPane();&lt;br /&gt;
    contentPane.add(toolbar, BorderLayout.NORTH);&lt;br /&gt;
    JTextArea textArea = new JTextArea();&lt;br /&gt;
    JScrollPane pane = new JScrollPane(textArea);&lt;br /&gt;
    contentPane.add(pane, BorderLayout.CENTER);&lt;br /&gt;
    frame.setSize(350, 150);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public static class TheActionListener implements ActionListener {&lt;br /&gt;
    public void actionPerformed(ActionEvent actionEvent) {&lt;br /&gt;
      System.out.println(actionEvent.getActionCommand());&lt;br /&gt;
    }&lt;br /&gt;
  };&lt;br /&gt;
}&lt;br /&gt;
class ShowAction extends AbstractAction {&lt;br /&gt;
  Component parentComponent;&lt;br /&gt;
  public ShowAction(Component parentComponent) {&lt;br /&gt;
    super(&amp;quot;About&amp;quot;);&lt;br /&gt;
    putValue(Action.MNEMONIC_KEY, new Integer(KeyEvent.VK_A));&lt;br /&gt;
    putValue(Action.SMALL_ICON, MetalIconFactory.getFileChooserHomeFolderIcon());&lt;br /&gt;
    this.parentComponent = parentComponent;&lt;br /&gt;
  }&lt;br /&gt;
  public void actionPerformed(ActionEvent actionEvent) {&lt;br /&gt;
        JOptionPane.showMessageDialog(parentComponent, &amp;quot;About Swing&amp;quot;,&lt;br /&gt;
            &amp;quot;About Box V2.0&amp;quot;, JOptionPane.INFORMATION_MESSAGE);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>