本题的功能是用复选按钮来控制鼠标右键的弹出菜单是否弹出。窗口中有一个复选按钮“弹出菜单”,如果选中该复选按钮后,鼠标置于窗口上,点击鼠标右键会弹出一个菜单,点击菜单项中的项后,后台会输出所点击的菜单项,如果取消该复选按钮的选择,但点击鼠标右键就不能弹出菜单

admin2012-12-02  48

问题 本题的功能是用复选按钮来控制鼠标右键的弹出菜单是否弹出。窗口中有一个复选按钮“弹出菜单”,如果选中该复选按钮后,鼠标置于窗口上,点击鼠标右键会弹出一个菜单,点击菜单项中的项后,后台会输出所点击的菜单项,如果取消该复选按钮的选择,但点击鼠标右键就不能弹出菜单。
import java.awt.*;
import java.awt.event.*;
class CanvasWithPopup extends Canvas {
______;
CanvasWithPopup(PopupMenu popup) {
  enableEvents(AWTEvent.MOUSE_EVENT_MASK);
  this.popup = popup;
}
void addPopup() {
  add(popup);
}
void removePopup() {
  remove(popup);
}
protected void processMouseEvent(MouseEvent evt) {
  if (popup.getParent() != null && evt.isPopupTrigger()) {
      popup.show(evt.getComponent(), evt.getX(), evt.getY());
  }
  super.processMouseEvent(evt);
}
}
public class java3 extends Frame implements ItemListener, ActionListener {
Checkbox cb = new Checkbox("弹出菜单", false);
CanvasWithPopup canvas;
java3() {
  super("java3");
addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
          System.exit(0);
      }
  });
  add(cb, BorderLayout.NORTH);
  cb.addItemListener(this);
  PopupMenu popup = new PopupMenu("Button Control");
  popup.add("item1");
  popup.add("item2");
  popup.addActionListener(this);
  canvas = new CanvasWithPopup(popup);
  add(canvas, BorderLayout.CENTER);
  setSize(100, 200);
  show();
}
public void itemStateChanged(ItemEvent evt) {
  ______{
  case ItemEvent.SELECTED:
      canvas.addPopup();
      break;
  case ItemEvent.DESELECTED:
      canvas.removePopup();
      break;
  }
}

public void actionPerformed(ActionEvent evt) {
  ______;
}
static public void main(String[] args) {
  new java3();
}
}

选项

答案第1处:PopupMenu popup第2处:switch (evt.getStateChange())第3处:System.out.println(evt.getActionCommand()+”is selected”)

解析 第1处JAVA是大小写敏感的;第2处复选按钮状态更改事件为getStateChange;第3处getActionCommand()没有对应的ActionEvent。
转载请注明原文地址:https://jikaoti.com/ti/9XkiFFFM
0

相关试题推荐
最新回复(0)