Share ActionEvent handlerTag(s): Swing
In this example, a JMenu, JToolbar and JButtons on a JFrame are sharing common ActionEvent handlers.
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class ShareAction extends JFrame {
OpenAction openAction = new OpenAction();
SaveAction saveAction = new SaveAction();
QuitAction quitAction = new QuitAction();
public static void main(String argv[]) {
new ShareAction().setVisible(true);
}
ShareAction() {
createMenu();
createToolBar();
createButtons();
pack();
// deal closing via the upper right "X" by redirecting to
// quitAction
addWindowListener
(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
ActionEvent ae =
new ActionEvent (quitAction,
ActionEvent.ACTION_PERFORMED,
"bebye");
JFrame j = (JFrame)e.getSource();
j.dispatchEvent(ae);
}
}
);
}
public Dimension getPreferredSize() {
return new Dimension(300,300);
}
private void createMenu(){
JMenuBar mb = new JMenuBar();
JMenu file = new JMenu("File");
mb.add(file);
file.add(openAction);
file.add(saveAction);
file.add(quitAction);
setJMenuBar(mb);
}
private void createToolBar() {
JToolBar bar = new JToolBar();
bar.add(openAction);
bar.add(saveAction);
bar.add(quitAction);
getContentPane().add(bar, "North");
}
private void createButtons() {
JPanel j = new JPanel();
JButton b1 = new JButton("Open");
JButton b2 = new JButton("Save");
JButton b3 = new JButton("Quit");
b1.addActionListener(openAction);
b2.addActionListener(saveAction);
b3.addActionListener(quitAction);
j.add(b1);
j.add(b2);
j.add(b3);
getContentPane().add(j, "East");
}
}
class OpenAction extends AbstractAction {
public OpenAction() {
super("Open", new ImageIcon("open.gif"));
}
public void actionPerformed(ActionEvent e) {
System.out.println("Open action");
}
}
class SaveAction extends AbstractAction {
public SaveAction() {
super("Save", new ImageIcon("save.gif"));
}
public void actionPerformed(ActionEvent e) {
System.out.println("Save action");
}
}
class QuitAction extends AbstractAction {
public QuitAction() {
super("Quit", new ImageIcon("quit.gif"));
}
public void actionPerformed(ActionEvent e) {
System.out.println("Quit action");
System.out.println("Bye.");
System.exit(0);
}
}
mail_outline
Send comment, question or suggestion to howto@rgagnon.com
Send comment, question or suggestion to howto@rgagnon.com