import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
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.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JToolBar;
public class ActionSample extends JFrame {
private Action sampleAction;
private Action exitAction;
public ActionSample(){
super("Using Actions");
sampleAction = new AbstractAction(){
public void actionPerformed(ActionEvent event){
JOptionPane.showMessageDialog(ActionSample.this, "The sampleAction was invoked!");
exitAction.setEnabled(true);
}
};
sampleAction.putValue(Action.NAME, "Sample Action");
sampleAction.putValue(Action.SHORT_DESCRIPTION, "A Sample Action");
sampleAction.putValue(Action.MNEMONIC_KEY, new Integer('s'));
exitAction = new AbstractAction(){
public void actionPerformed(ActionEvent event){
JOptionPane.showMessageDialog(ActionSample.this, "The exitAction was invoked");
System.exit(0);
}
};
exitAction.putValue(Action.NAME, "Exit");
exitAction.putValue(Action.SHORT_DESCRIPTION, "Exit Application");
exitAction.putValue(Action.MNEMONIC_KEY, new Integer('x'));
exitAction.setEnabled(false);
JMenu fileMenu = new JMenu("File");
fileMenu.add(sampleAction);
fileMenu.add(exitAction);
fileMenu.setMnemonic('F');
JMenuBar menuBar = new JMenuBar();
menuBar.add(fileMenu);
setJMenuBar(menuBar);
JToolBar toolBar = new JToolBar();
toolBar.add(sampleAction);
toolBar.add(exitAction);
JButton sampleButton = new JButton();
sampleButton.setAction(sampleAction);
JButton exitButton = new JButton(exitAction);
JPanel buttonPanel = new JPanel();
buttonPanel.add(sampleButton);
buttonPanel.add(exitButton);
Container container = getContentPane();
container.add(toolBar, BorderLayout.NORTH);
container.add(buttonPanel, BorderLayout.CENTER);
}
public static void main(String args[]){
ActionSample sample = new ActionSample();
sample.setDefaultCloseOperation(EXIT_ON_CLOSE);
sample.pack();
sample.setVisible(true);
}
}
C++, Java, Python, PHP, Programming Tips, Linux, Bash Shell Scripting, Security And Tech Stuff
Showing posts with label swing. Show all posts
Showing posts with label swing. Show all posts
Sunday, March 27, 2011
Design pattern with Swing Actions
Subscribe to:
Posts (Atom)