If a class is a local inner class, does this mean that it is inside a method of another class or does it mean that it is just defined in another method somewhere.
For example, in the code below, is the MenuListener considered an inner local class?
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MenuDemo extends JFrame{
private Container c;
private ImageIcon[] images = new ImageIcon[5];
private JLabel picture;
private JPanel mainPanel;
private JMenuBar menuBar;
private JMenu menu;
private JMenuItem bird,cat,dog,rabbit,pig;
public MenuDemo() {
super("Menu Demo");
c = getContentPane();
c.setLayout(new BorderLayout());
mainPanel = new JPanel();
// Store the animal pictures in an array.
for (int i=0; i<5; i++){
images[i] = new ImageIcon("image" + i + ".gif");
}
//Set up the picture label.
picture = new JLabel(images[0]);
picture.setPreferredSize(new Dimension(177,122));
mainPanel.add(picture, BorderLayout.CENTER);
c.add(mainPanel);
buildMenuBar();
this.setJMenuBar(menuBar);
pack();
setVisible(true);
}
private void buildMenuBar(){
MenuListener listener = new MenuListener();
menuBar = new JMenuBar();
menu = new JMenu("Animals");
menu.setMnemonic(KeyEvent.VK_A);
menuBar.add(menu);
bird = new JMenuItem("Bird", KeyEvent.VK_B);
bird.addActionListener(listener);
menu.add(bird);
cat = new JMenuItem("Cat", KeyEvent.VK_C);
cat.addActionListener(listener);
menu.add(cat);
dog = new JMenuItem("Dog", KeyEvent.VK_D);
dog.addActionListener(listener);
menu.add(dog);
rabbit = new JMenuItem("Rabbit", KeyEvent.VK_R);
rabbit.addActionListener(listener);
menu.add(rabbit);
pig = new JMenuItem("Pig", KeyEvent.VK_P);
pig.addActionListener(listener);
menu.add(pig);
}
private class MenuListener implements ActionListener {
public void actionPerformed(ActionEvent e){
if (e.getSource() == bird)
picture.setIcon(images[0]);
else if (e.getSource() == cat)
picture.setIcon(images[1]);
else if (e.getSource() == dog)
picture.setIcon(images[2]);
else if (e.getSource() == rabbit)
picture.setIcon(images[3]);
if (e.getSource() == pig)
picture.setIcon(images[4]);
}
}
public static void main(String[] args){
MenuDemo m = new MenuDemo();
m.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}