自己写的一个程序,希望大家指教!
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class EventExample
{
int i;
JFrame aFrame;
JMenuBar aMenuBar;
JMenu CycleDirection, ColorChoices;
JMenuItem NextColor,PreviousColor,WhiteColor,BlueColor,GreenColor;
JMenuItem c1,c2,c3;
JButton b1,b2,b3,back,forward;
JToolBar aToolBar;
Color colorChoice[]={Color.white,Color.blue,Color.green};
Color currentColor;
JPanel aPanel;
JPopupMenu aPopupMenu;
public EventExample()
{
aFrame=new JFrame("Event Example");
aFrame.setSize(400,400);
aPanel=new JPanel();
aPopupMenu=new JPopupMenu();
c1=new JMenuItem("White",'W');
c2=new JMenuItem("Blue",'B');
c3=new JMenuItem("Green",'G');
aMenuBar=new JMenuBar();
aToolBar=new JToolBar();
CycleDirection=new JMenu("CycleDirection");
ColorChoices=new JMenu("ColorChoices");
NextColor=new JMenuItem("NextColor",'N');
PreviousColor=new JMenuItem("PreviousColor",'P');
WhiteColor=new JMenuItem("White",'W');
BlueColor=new JMenuItem("Blue",'B');
GreenColor=new JMenuItem("Green",'G');
CycleDirection.setMnemonic('D');
ColorChoices.setMnemonic('C');
NextColor.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK,false));
PreviousColor.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK,false));
WhiteColor.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W,InputEvent.CTRL_MASK,false));
BlueColor.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B,InputEvent.CTRL_MASK,false));
GreenColor.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G,InputEvent.CTRL_MASK,false));
forward=new JButton(new ImageIcon("ButtonEx3.jpg"));
back=new JButton(new ImageIcon("ButtonEx1.jpg"));
b1=new JButton("White");
b1.setBackground(Color.white);
b2=new JButton("Blue");
b2.setBackground(Color.blue);
b3=new JButton("Green");
b3.setBackground(Color.green);
aToolBar.add(back);
aToolBar.add(forward);
aToolBar.add(b1);
aToolBar.add(b2);
aToolBar.add(b3);
aPopupMenu.add(c1);
aPopupMenu.add(c2);
aPopupMenu.add(c3);
aMenuBar.add(CycleDirection);
aMenuBar.add(ColorChoices);
CycleDirection.add(NextColor);
CycleDirection.add(PreviousColor);
ColorChoices.add(WhiteColor);
ColorChoices.add(BlueColor);
ColorChoices.add(GreenColor);
aFrame.setJMenuBar(aMenuBar);
aFrame.getRootPane().setDefaultButton(forward);
aFrame.getContentPane().setLayout(new BorderLayout());
aFrame.getContentPane().add(aToolBar,BorderLayout.NORTH);
aFrame.getContentPane().add(aPanel,BorderLayout.CENTER);
aFrame.setDefaultCloseOperation(aFrame.EXIT_ON_CLOSE);
aFrame.setVisible(true);
aPanel.addMouseListener(new PopupMenuListener());
NextColor.addActionListener(new NextColorListener());
forward.addActionListener(new NextColorListener());
PreviousColor.addActionListener(new PreviousListener());
back.addActionListener(new PreviousListener());
WhiteColor.addActionListener(new WhiteListener());
c1.addActionListener(new WhiteListener());
b1.addActionListener(new WhiteListener());
BlueColor.addActionListener(new BlueListener());
b2.addActionListener(new BlueListener());
c2.addActionListener(new BlueListener());
GreenColor.addActionListener(new GreenListener());
b3.addActionListener(new GreenListener());
c3.addActionListener(new GreenListener());
}
public class NextColorListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
aPanel.setBackground(colorChoice[Math.abs(++i%3)]);
}
};
class PreviousListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
aPanel.setBackground(colorChoice[Math.abs((--i+3)%3)]);
}
};
class WhiteListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
aPanel.setBackground(Color.white);
i=0;
}
};
class BlueListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
aPanel.setBackground(Color.blue);
i=1;
}
};
class GreenListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
aPanel.setBackground(Color.green);
i=2;
}
};
class PopupMenuListener extends MouseAdapter
{
public void mouseReleased(MouseEvent e)
{
if(e.isPopupTrigger())
{
aPopupMenu.show(e.getComponent(),e.getX(),e.getY());
}
}
};
public static void main(String[]args)
{
new EventExample();
}
};