本题的功能是监听对于菜单项和工具条的操作。窗口中有一个菜单“Color”和一个工具体,菜单“Color”中有菜单项“Yellow”、“Blue”、“Red”和“Exit”,每个菜单项都有对应的图形,点击前三个颜色菜单项,主窗口就变成对应的颜色,点击“Exi

admin2012-12-02  72

问题 本题的功能是监听对于菜单项和工具条的操作。窗口中有一个菜单“Color”和一个工具体,菜单“Color”中有菜单项“Yellow”、“Blue”、“Red”和“Exit”,每个菜单项都有对应的图形,点击前三个颜色菜单项,主窗口就变成对应的颜色,点击“Exit”则退出程序。工具条上则有四个按钮,分别为三个颜色按钮和一个退出程序的按钮,点击任意一个颜色按钮,主窗口将变成按钮对应的颜色,点击退出程序按钮,则退出程序。
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 ImageIcon("java3-blue-ball.gif"), Color.BLUE);
Action yellowAction = new ColorAction("Yellow",
   new ImageIcon("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 ImageIcon("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);
______;
JMenu menu = new JMenu("Color");
menu.add(yellowAction);
menu.add(blueAction);
menu.add(redAction);
menu.add(exitAction);
JMenuBar menuBar = new JMenuBar();
menuBar.add(menu);
______;
}
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");
   ______;
}
}
}

选项

答案第1处:contentPane.add(bar,BorderLayout.NORTH)第2处:setJMenuBar(menuBar)第3处:panel.setBackgroud?

解析 第1处将工具条添加到容器内使用的方法应为add;第2处的上一步为将menu添加到menuBar中,从这一步的参数为menuBar可看出应为setJMenuBar;第3处设置面板的背景颜色应使用的方法为setBackgroud()。
转载请注明原文地址:https://kaotiyun.com/show/9nID777K
0

最新回复(0)