本题的功能是用复选按钮来控制鼠标右键的弹出菜单是否弹出。窗口中有一个复选按钮“弹出菜单”,如果选中该复选按钮后,鼠标置于窗口上,单击鼠标右键会弹出一个菜单,单击菜单项中的选项后,后台会输出单击的菜单项,如果取消该复选按钮的选择,单击鼠标右键则不能弹出菜单。import java.awt.*; import java.awt.event.*; class CanvasWithPopup extends Canvas{ Popupmenu popup; 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.addhemListener(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) {switch(evt.getState()){case ItemEvent.SELECTED: canvas.addPopup(); break;case ItemEvent.DESELECTED: canvas.removePopup(); break;}}public void actionPerformed(ActionEvent evt) {System.out.println(getActionCommand()+"is selected");}static public void main(String[]atgs) {new java3();}
java语言程序设计上机考试_全国计算机二级Java上机操作练习题(3)
最新推荐文章于 2023-08-30 15:51:45 发布