本题的功能是监听对于菜单项和工具条的操作。窗口中有一个菜单“Color”和一个工具体,菜单“Color”中有菜单项“Yellow”、“Blue”、“Red”和“Exit”,每个菜单项都有对应的图形,单击前三个颜色菜单项,主窗口就变成对应的颜色,单击“Exit”则退出程序。工具条上有4个按钮,分别为三个颜色按钮和一个退出程序的按钮,单击任意一个颜色按钮,主窗口将变成按钮对应的颜色,单击退出程序按钮,则退出程序。import java.awt.*;import java.awt.event.*;import java.beans.*;import javax.swin9.*;public class java3{public static void main(String[]args){ToolBarFrame. frame=new ToolBarFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.show();}}class ToolBarFrame. extends JFrame{public ToolBarFrame(){setTitle("java3");setSize(DEFAULT_WIDTH,DEFAUlT_HElGHT);Container contentPane=getContentPane();panel=new JPanel();contentPane.add(panel,BorderLayout.CEN-TER);Action blueAction=new ColorAction("Blue".new ImageIcon("java3-blue-ball.gif"),Color.BLUE);Action yellowAction=new ColorAction("Yellow",new Imagelcon("java3-yellow-ball.gif"),Col-or.YELLOW);Action redAction=new ColorAction("Red".new Imagelcon("java3-red-ball.gif"),Color.RED);Action exitAction=newAbstractAction("Exit".new Imagelcon("java3-exit.gif")){public void actionPerformed(ActionEvent event){System.exit(0);}};exitAction.putValue(Action.SH()RT_DESCRIP-TIoN,"Exit");JToolBar bar=new JToolBar();bar.add(blueAction);bar.add(yellowAction);bar.add(redAction);bar.addSeparator();bar.add(exitAction);contentPane.addToolBar(bar,BorderLayout.NoRTH);JMenu menu=new JMenu("Color"):menu.add(yellowAction);menu.add(blueAction);menu.add(redAction);menu.add(exitAction);JMenuBar menuBar=new JMenuBar():menuBar.add(menu);SetJ Menu(menuBar);}public static final int DEFAULT_WIDTH=300;public static final int DEFAULT_HEIGHT=200;private JPanel panel;class ColorAction extends AbstractAction{public ColorAction(String name,Icon icon,Colorc){putValue(Action.NAME,name);putValue(Action.SMALL_ICON,icon);putValue(Action.SHORT_DESCRIPTION,name+"background");putValue("Color",c);}public void actionPerformed(ActionEvent evt){Color C=(Color)getValue("Color");panel.setBackcolor(c);}}}
本题的功能是监听对于菜单项和工具条的操作。窗口中有一个菜单“Color”和一个工具体,菜单“Color”中有菜单项“Yellow”、“Blue”、“Red”和“Exit”,每个菜单项都有对应的图形,单击前三个颜色菜单项,主窗口就变成对应的颜色,单击“Exit”则退出程序。工具条上有4个按钮,分别为三个颜色按钮和一个退出程序的按钮,单击任意一个颜色按钮,主窗口将变成按钮对应的颜色,单击退出程序按钮,则退出程序。
import java.awt.*;
import java.awt.event.*;
import java.beans.*;
import javax.swin9.*;
public class java3
{
public static void main(String[]args)
{
ToolBarFrame. frame=new ToolBarFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_
ON_CLOSE);
frame.show();
}
}
class ToolBarFrame. extends JFrame
{
public ToolBarFrame()
{
setTitle("java3");
setSize(DEFAULT_WIDTH,DEFAUlT_
HElGHT);
Container contentPane=getContentPane();
panel=new JPanel();
contentPane.add(panel,BorderLayout.CEN-
TER);
Action blueAction=new ColorAction("Blue".
new ImageIcon("java3-blue-ball.gif"),Color.
BLUE);
Action yellowAction=new ColorAction("
Yellow",
new Imagelcon("java3-yellow-ball.gif"),Col-
or.YELLOW);
Action redAction=new ColorAction("Red".
new Imagelcon("java3-red-ball.gif"),Color.
RED);
Action exitAction=new
AbstractAction("Exit".new Imagelcon("java3-
exit.gif"))
{
public void actionPerformed(ActionEvent event)
{
System.exit(0);
}
};
exitAction.putValue(Action.SH()RT_DESCRIP-
TIoN,"Exit");
JToolBar bar=new JToolBar();
bar.add(blueAction);
bar.add(yellowAction);
bar.add(redAction);
bar.addSeparator();
bar.add(exitAction);
contentPane.addToolBar(bar,BorderLayout.
NoRTH);
JMenu menu=new JMenu("Color"):
menu.add(yellowAction);
menu.add(blueAction);
menu.add(redAction);
menu.add(exitAction);
JMenuBar menuBar=new JMenuBar():
menuBar.add(menu);
SetJ Menu(menuBar);
}
public static final int DEFAULT_WIDTH=300;
public static final int DEFAULT_HEIGHT
=200;
private JPanel panel;
class ColorAction extends AbstractAction
{
public ColorAction(String name,Icon icon,Color
c)
{
putValue(Action.NAME,name);
putValue(Action.SMALL_ICON,icon);
putValue(Action.SHORT_DESCRIPTION,
name+"background");
putValue("Color",c);
}
public void actionPerformed(ActionEvent evt)
{
Color C=(Color)getValue("Color");
panel.setBackcolor(c);
}
}
}