Handling JMenu actions
Its confusing :confused:
here is my code
TextMenu Class
import javax.swing.*;
import java.awt.event.*;
public class TextMenu extends JMenuBar implements ActionListener
{
String[] fileItems = new String[] {"New","Open","Save","Print","Exit"};
char[] fileShortcuts = {'N','O','S','P','X'};
public TextMenu()
{
JMenu fileMenu = new JMenu("File");
//Assemble the File menus
for(int i = 0; i< fileItems.length; i++)
{
JMenuItem item = new JMenuItem(fileItems[i]);
item.setAccelerator(KeyStroke.getKeyStroke(fileShortcuts[i],
java.awt.Event.CTRL_MASK,false));
item.addActionListener(this);
fileMenu.add(item);
}
add(fileMenu);
}
public void actionPerformed(ActionEvent event)
{
System.out.println("Menu item ["+ event.getActionCommand() +
"] was pressed.");
if(event.getActionCommand() =="Exit")
{
System.exit(0);
}
}
}
TextPadWindow class
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TextPadWindow extends JFrame
{
TextMenu myMenu = new TextMenu();
JTextArea workArea = new JTextArea();
JScrollPane workPanel = new JScrollPane();
JLabel stats = new JLabel("Total lines: ");
Container container;
public TextPadWindow()
{
super("Text Pad");
setJMenuBar(myMenu);
container = this.getContentPane();
workArea.setLineWrap(true);
workArea.setWrapStyleWord(false);
workArea.setMargin(new Insets(5,5,5,5));
workArea.addKeyListener(new KeyListener(){
public void keyPressed(KeyEvent e){}
public void keyReleased(KeyEvent e) {}
public void keyTyped(KeyEvent e)
{
stats.setText("Total lines: " + workArea.getLineCount());
}
});
workPanel.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
workPanel.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
workPanel.setViewportView(workArea);
container.add(workPanel,BorderLayout.CENTER);
container.add(stats,BorderLayout.SOUTH);
setSize(300,250);
setVisible(true);
}
}
Any help will be very apreciated.

