填空题
本题的功能是监听对于菜单项和工具条的操作。窗口中有一个菜单“Color”和一个工具体,菜单“Color”中有菜单项“Yellow”、“Blue”、“Red”和“Exit”,每个菜单项都有对应的图形,单击前三个颜色菜单项,主窗口就变成对应的颜色,单击“Exit”则退出程序。工具条上有4个按钮,分别为三个颜色按钮和一个退出程序的按钮,单击任意一个颜色按钮,主窗口将变成按钮对应的颜色,单击退出程序按钮,则退出程序。
import java. awt. * ;
import java. awt. event. * ;
import java. beans. * ;
import javax. swing. * ;
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_HEIGHT);
Container contentPane=getContentPane();
panel=new JPanel();
contentPane. add(panel, BorderLayout. CENTER);
Action blueAction=new ColorAction("Blue",
new Imagelcon("java3-blue--ball. gif"), Color.BLUE);
Action yellowAction=new ColorAction ("Yellow",
new Imagelcon("java3-yellow-ball. gif"), Color. YELLOW);
Action redAction=new ColorAction("Red",
new ImageIcon("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. SHORT_DESCRIPTION, "Exit");
JToolBar bar=new JToolBar();
bar. add(blueAction);
bar. add(yellowAction);
bar. add(redAction);
bar. addSeparator();
bar. add(exitAction);
contentPane, addTootBar(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);
【参考答案】
第A处:contentPane. add(bar, BorderLayout. NORTH)
第B处:setJ......
(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)