java怎么拖动图片_图片拖动效果

1 2 importjava.awt.*;3 importjavax.swing.*;4 importjava.awt.event.*;5 importjavax.swing.event.*;6 7 publicclassMain8 {9 publicstaticvoidmain (String args[])10 {11 JFrame f=newJFrame ();12 f.setLayout (null);13 NEWImagepanel pan=newNEWImagepanel ("/1.jpg");14 pan.setPreferredSize (newDimension (800,800));15 JScrollPane jspan=newJScrollPane (pan);16 jspan.setHorizontalScrollBarPolicy (JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);17 jspan.setVerticalScrollBarPolicy (JScrollPane.VERTICAL_SCROLLBAR_NEVER);18 jspan.setBounds (0,0,400,400);19 f.setSize (400,500);20 f.add ("Center",jspan);21 f.setVisible (true);22 f.setDefaultCloseOperation (f.EXIT_ON_CLOSE);23 }24 }25 classNEWImagepanelextendsJPanelimplementsMouseListener ,MouseInputListener26 {27 privateImage  bgimg;28 intanchorX=0;29 intanchorY=0;30 31 publicNEWImagepanel ()32 {33 super();34 }35 //参数所指图片文件的路径36 publicNEWImagepanel (String path)37 {38 39 super();40 41 MediaTracker tracker=newMediaTracker (this);42 bgimg=newImageIcon (getClass ().getResource (path)).getImage ();43 tracker.addImage (bgimg,0);44 try45 {46 tracker.waitForAll ();47 }48 catch(Exception e)49 {50 e.printStackTrace ();51 }52 addMouseMotionListener (this);53 addMouseListener (this);54 55 }56 publicvoidpaintComponent (Graphics g)57 {58 if(bgimg==null)59 {60 super.paintComponent (g);61 }62 g.drawImage (bgimg,0,0,this.getWidth (),this.getHeight (),this);63 //g.drawImage (bgimg ,0,0,null);64 }65 66 publicvoidmouseClicked (MouseEvent e)67 {68 }69 70 publicvoidmousePressed (MouseEvent e)71 {72 anchorX=e.getX ();73 anchorY=e.getY ();74 try75 {76 setCursor (Cursor.getPredefinedCursor (Cursor.MOVE_CURSOR));77 }78 catch(Exception ex)79 {80 System.out.println (ex.toString ());81 }82 }83 84 publicvoidmouseReleased (MouseEvent e)85 {86 setCursor (Cursor.getDefaultCursor ());87 }88 89 publicvoidmouseEntered (MouseEvent e)90 {91 }92 93 publicvoidmouseExited (MouseEvent e)94 {95 }96 97 publicvoidmouseDragged (MouseEvent e)98 {99 intx=e.getX ();100 inty=e.getY ();101 Container parent=getParent ();102 if(parentinstanceofJViewport)103 {104 JViewport viewport=(JViewport)parent;105 Point p=viewport.getViewPosition ();106 p.translate (anchorX-x ,anchorY-y);107 p.x=Math.max (p.x,0);108 p.y=Math.max (p.y,0);109 p.x=Math.min (p.x,getWidth ()-viewport.getWidth ());110 p.y=Math.min (p.y , getHeight ()-viewport.getHeight ());111 viewport.setViewPosition (p);112 }113 }114 115 publicvoidmouseMoved (MouseEvent e)116 {117 }118 119 }120

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值