import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class ActionSample extends JPanel
{
public JMenuBar menuBar;
public JToolBar toolBar;
public ActionSample(){
super(true);
//Crea una JMenuBar
menuBar = new JMenuBar();
menuBar.setBorder(new BevelBorder(BevelBorder.RAISED));
// Crea un JMenu e lo aggiunge alla JMenuBar precedente
JMenu menu = new JMenu("Menu");
menuBar.add(menu);
// Crea una JToolBar
toolBar = new JToolBar();
toolBar.setBorder(new EtchedBorder());
// Crea un'istanza della classe OpenAction, assegnandole
// una descrizione e una icona
OpenAction openAction = new OpenAction("Apri",
new ImageIcon("open.gif"));
// Crea un JButton da aggiungere alla toolbar
JButton openButton = new JButton();
openButton.setAction( openAction);
toolBar.add(openButton);
// Crea un JMenuItem da aggiungere al componente di tipo JMenu
JMenuItem openItem = new JMenuItem();
openItem.setAction(openAction);
menu.add(openItem);
}
class OpenAction extends AbstractAction{
public OpenAction (String text, Icon icon){
super(text,icon);
}
// Implementazione del metodo actionPerformed() che gestisce
// la funzionalità propria dell'action object
public void actionPerformed(ActionEvent e){
System.out.println("Eseguita una Action di
tipo \"" + e.getActionCommand() + "\"");
}
}
public static void main(String[] args){
ActionSample sAction = new ActionSample();
JFrame frame = new JFrame("Esempio sulle Swing Action");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setJMenuBar(sAction.menuBar);
frame.getContentPane().add(sAction.toolBar,BorderLayout.NORTH);
frame.setSize(250, 250);
frame.setVisible(true);
}
}