[试题]

本题的功能是监听鼠标左右键的单击,以及面板中滚动条的添加。在窗口的画板中单击鼠标左键,在单击的位置绘制一个圆,当绘制的圆大于画板的大小时,画板就添加滚动条,在画板中单击鼠标右键,则清除画板中的所有图形。 import javax.swing.*; import javax.swing.event.MouselnputAdapter; import java.awt.*; import java.awt.event.*; import java.util.*; public class java3 extends JPanel{ private Dimension size; private Vector objects; private final Color colors[]={ Color.red,Color.blue,Color.green,Color.or- ange, Color.cyan,Color.magenta,Color.darkGray, Color.yellow); private final int color_n=colors.length; JPanel drawingArea; public java3{ setopaque(true); size=new Dimension(0,0); bjects=new Vector; JLabel instructionsLeft=new JLabel("单击鼠标 左键画圆."); JLabel instructionsRight=new JLabel("单击鼠 标右键清空画板."); JPanel instructionPanel=new JPanel(new Grid- Layout(0,1)); instructionPanel.add(instructionsLeft); instructionPanel.add(instructionsRight); drawingArea=new JPanel{ protected void paintComponent(Graphics g){ super.paintComponent(g); Rectangle rect; for(int i=0;i<objects.size;i++){ rect=(Rectangle)objects.elementAt(i): g.setColor(colors[(i%color_n)]); g.fillOval(rect.X,rect.Y,rect.width,rect. height); } } }; drawingArea.setBackground(Color.white); drawingArea.addMouseListener(new MouseLis- tener); JScrollPane scroller=new JScrollPane(drawing- Area); scroller.setPreferredSize(new Dimension(200, 200)); setLayout(new BorderLayout); add(instructionPanel,BorderLayout.NORTH); add(scroller,BorderLayout.CENTER): } class MyMouseListener extends mouseInputAdapt- er{ final int W=100; final int H=100; public void mouseReleased(MouseEvent e){ boolean changed=false; if(SwingUtilities.isRightMouseButton(e)){ objects.removeAllElements; size.width=0; size.height=0; changed=true; }else{ int X=e.getX-W/z; int Y=e.getY-H/2 if(x<0)x=0; if(y<O)Y=0; Rectangle rect=new Rectangle(X,Y,W,H); objeets.addElement(rect); drawingArea.scrollRectToVisible(rect); int this_width=(x+W+2); if(this width>size.width) {size.width=this_width;changed=true;} int this=height=(y+H+2); if(this_height>size.height) {size.height=this_height;changed=true;} } if(changed){ drawingArea.setPreferredSize(size); drawingArea.revalidateI; } drawingArea.paint; } } public static void main(String args[]){ JFrame. frame=new JFrame("java3"): frame.addWindowListener(new WindowAdapter { public void windowClosing(WindowEvent e) {System.exit(0);} }); frame.setContentPane(new java3); frame.pack; frame.setVisible(true); } }

参考答案与解析:

相关试题

本题的功能是跟踪鼠标在窗口的操作,以及在窗口的坐标,包括移进、移出、移动、单击、

[试题]本题的功能是跟踪鼠标在窗口的操作,以及在窗口的坐标,包括移进、移出、移动、单击、释放和拖曳,并将这些信息显示在窗口的文字标签上。 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class java3 extends JFrame. implements MouseL- istener MouseMotionListener { private JLabel statusBar; public jav

  • 查看答案
  • 滚动条控件中,用来设置鼠标单击滚动箭头时滚动条移动的大小的属性是______。

    [单选题]滚动条控件中,用来设置鼠标单击滚动箭头时滚动条移动的大小的属性是______。A.MaxB.ValueC.LargeChangeD.SmallChange

  • 查看答案
  • 滚动条控件中,用来设置鼠标单击滚动箭头时滚动条移动的大小的属性是 ______。

    [单选题]滚动条控件中,用来设置鼠标单击滚动箭头时滚动条移动的大小的属性是 ______。A.MaxB.ValueC.LargeChangeD.SmallChange

  • 查看答案
  • 在WindowsXP中,如果想改变鼠标左右键功能,可以在()中单击“鼠标”图标后

    [单选题]在WindowsXP中,如果想改变鼠标左右键功能,可以在()中单击“鼠标”图标后进行设置。A.:网上邻居B.:我的电脑C.:控制面板中的“打印机和其它硬件”D.:系统

  • 查看答案
  • 在windows操作中,单击鼠标右键,会()

    [单选题]在windows操作中,单击鼠标右键,会()A . 弹出帮助信息B . 弹出一个对话框C . 弹出一个快捷菜单D . 弹出一个窗口

  • 查看答案
  • 鼠标的单击操作是指单击右键。

    [判断题] 鼠标的单击操作是指单击右键。A . 正确B . 错误

  • 查看答案
  • 本题的功能是获取鼠标在窗口中的位置。当鼠标移进窗口中,就会实时显示鼠标在窗口中的

    [主观题]本题的功能是获取鼠标在窗口中的位置。当鼠标移进窗口中,就会实时显示鼠标在窗口中的相对位置,如显示为‘‘鼠标的当前位置:X:Y”(其中,X为横坐标,Y为纵坐标)。

  • 查看答案
  • 将鼠标指针移动到窗口的滚动条的滚动块上,按住鼠标左键并上下或左右拖动滚动块,这个

    [单选题]将鼠标指针移动到窗口的滚动条的滚动块上,按住鼠标左键并上下或左右拖动滚动块,这个操作称为()。A .缩放窗口B .滚动窗口C .功换窗口D .移动窗口

  • 查看答案
  • 鼠标的单击操作包括单击左键和单击右键,但一般是指单击右键。

    [判断题] 鼠标的单击操作包括单击左键和单击右键,但一般是指单击右键。A . 正确B . 错误

  • 查看答案
  • 用鼠标拖动滚动条中滚动框并释放,将触发滚动条的()事件

    [单选题]用鼠标拖动滚动条中滚动框并释放,将触发滚动条的()事件A . ScrollB . ChangeC . DragOverD . A和B

  • 查看答案