import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Menus extends JPanel {
static final Boolean bT = new Boolean(true), bF = new Boolean(false);
// Dummy class to create type identifiers:
static class MType {
MType(int i) {
}
};
static final MType mi = new MType(1), // Normal menu item
cb = new MType(2), // Checkbox menu item
rb = new MType(3); // Radio button menu item
JTextField t = new JTextField(10);
//JLabel l = new JLabel("Icon Selected",
//Faces.faces[0], JLabel.CENTER);
ActionListener a1 = new ActionListener() {
public void actionPerformed(ActionEvent e) {
t.setText(
((JMenuItem) e.getSource()).getText());
}
};
ActionListener a2 = new ActionListener() {
public void actionPerformed(ActionEvent e) {
JMenuItem mi = (JMenuItem) e.getSource();
t.setText(mi.getText());
//t.setIcon(mi.getIcon());
}
};
// Store menu data as "resources":
public Object[][] fileMenu = {
// Menu name and accelerator:
{"File", new Character('F')},
// Name type accel listener enabled
{"New", mi, new Character('N'), a1, bT},
{"Open", mi, new Character('O'), a1, bT},
{"Save", mi, new Character('S'), a1, bF},
{"Save As", mi, new Character('A'), a1, bF},
{null}, // Separator
{"Exit", mi, new Character('x'), a1, bT},};
public Object[][] editMenu = {
// Menu name:
{"Edit", new Character('E')},
// Name type accel listener enabled
{"Cut", mi, new Character('t'), a1, bT},
{"Copy", mi, new Character('C'), a1, bT},
{"Paste", mi, new Character('P'), a1, bT},
{null}, // Separator
{"Select All", mi, new Character('l'), a1, bT},};
public Object[][] helpMenu = {
// Menu name:
{"Help", new Character('H')},
// Name type accel listener enabled
{"Index", mi, new Character('I'), a1, bT},
{"Using help", mi, new Character('U'), a1, bT},
{null}, // Separator
{"About", mi, new Character('t'), a1, bT},};
public Object[][] optionMenu = {
// Menu name:
{"Options", new Character('O')},
// Name type accel listener enabled
{"Option 1", cb, new Character('1'), a1, bT},
{"Option 2", cb, new Character('2'), a1, bT},};
/*public Object[][] faceMenu = {
// Menu name:
{ "Faces", new Character('a') },
// Optinal last element is icon
{ "Face 0", rb, new Character('0'), a2, bT,
Faces.faces[0] },
{ "Face 1", rb, new Character('1'), a2, bT,Faces.faces[1] },
{ "Face 2", rb, new Character('2'), a2, bT,
Faces.faces[2] },
{ "Face 3", rb, new Character('3'), a2, bT,
Faces.faces[3] },
{ "Face 4", rb, new Character('4'), a2, bT,
Faces.faces[4] },
};*/
public Object[] menuBar = {
fileMenu, editMenu, //faceMenu,
optionMenu, helpMenu,};
static public JMenuBar createMenuBar(Object[] menuBarData) {
JMenuBar menuBar = new JMenuBar();
for (int i = 0; i < menuBarData.length; i++) {
menuBar.add(
createMenu((Object[][]) menuBarData[i]));
}
return menuBar;
}
static ButtonGroup bgroup;
static public JMenu createMenu(Object[][] menuData) {
JMenu menu = new JMenu();
menu.setText((String) menuData[0][0]);
//menu.setKeyAccelerator(
//((Character)menuData[0][1]).charValue());
// Create redundantly, in case there are
// any radio buttons:
bgroup = new ButtonGroup();
for (int i = 1; i < menuData.length; i++) {
if (menuData[i][0] == null) {
menu.add(new JSeparator());
} else {
menu.add(createMenuItem(menuData[i]));
}
}
return menu;
}
static public JMenuItem createMenuItem(Object[] data) {
JMenuItem m = null;
MType type = (MType) data[1];
if (type == mi) {
m = new JMenuItem();
} else if (type == cb) {
m = new JCheckBoxMenuItem();
} else if (type == rb) {
m = new JRadioButtonMenuItem();
bgroup.add(m);
}
m.setText((String) data[0]);
//m.setKeyAccelerator(
//((Character)data[2]).charValue());
m.addActionListener((ActionListener) data[3]);
m.setEnabled(
((Boolean) data[4]).booleanValue());
if (data.length == 6) {
m.setIcon((Icon) data[5]);
}
return m;
}
Menus() {
setLayout(new BorderLayout());
add(createMenuBar(menuBar),
BorderLayout.NORTH);
JPanel p = new JPanel();
p.setLayout(new BorderLayout());
p.add(t, BorderLayout.NORTH);
p.add(t, BorderLayout.CENTER);
add(p, BorderLayout.CENTER);
this.setVisible(true);
}
public static void main(String args[]) {
//Show.inFrame(new Menus(), 300, 200);
// new Menus();
JFrame f=new JFrame("Menu frame");
f.add(new Menus());
f.setSize(200,220);
f.setVisible(true);
}
}
Subscribe to:
Post Comments (Atom)
Popular Posts
-
Hi folks, I got a chance to work with JSF, it was an interesting requirement. Its about a custom component which would be of more use to ...
-
Hi Folks, I would like to share my another POC task in JSF with you all. "Primefaces Dropdown with Pagination & Filter "...
-
We shall create temp table in mysql using the sql script CREATE TEMPORARY TABLE testraghu(name VARCHAR(50) , phone VARCHAR(50)) Let us se...
-
Hi all, i would like to share a simple example of storing haspmap in mysql db. In order to store object into your db, the field type must ...
No comments:
Post a Comment