本题的功能是监听对于菜单项和工具条的操作。窗口中有一个菜单“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);
}
}
}
订单号:
遇到问题请联系在线客服
订单号:
遇到问题请联系在线客服