Advertisement
Guest User

Untitled

a guest
Dec 13th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.25 KB | None | 0 0
  1. import java . awt .*;
  2. import java . awt . event .*;
  3. import javax . swing .*;
  4.  
  5.  
  6. public class DragBallPanel extends JPanel implements
  7. MouseListener, MouseMotionListener{
  8.  
  9. private static final int BALL_DIAMETER = 40;
  10. private int _ballX = 50;
  11. private int _ballY = 50;
  12. private int _dragFromX = 0;
  13. private int _dragFromY = 0;
  14. private boolean _canDrag = false ;
  15.  
  16.  
  17. public DragBallPanel () {
  18. setPreferredSize ( new Dimension (300 , 300) ) ;
  19. setBackground ( Color . blue ) ;
  20. setForeground ( Color . yellow ) ;
  21.  
  22. this . addMouseListener ( this ) ;
  23. this . addMouseMotionListener ( this ) ;
  24. }
  25. public void paintComponent ( Graphics g ) {
  26. super . paintComponent ( g ) ;
  27. g . fillOval ( _ballX , _ballY , BALL_DIAMETER , BALL_DIAMETER );
  28. }
  29.  
  30. public void mousePressed ( MouseEvent e ) {
  31. int x = e . getX () ;
  32. int y = e . getY () ;
  33.  
  34. if ( x >= _ballX && x <= ( _ballX + BALL_DIAMETER )
  35. && y >= _ballY && y <= ( _ballY + BALL_DIAMETER ) )
  36. {
  37. _canDrag = true ;
  38. _dragFromX = x - _ballX ;
  39. _dragFromY = y - _ballY ;
  40. } else {
  41. _canDrag = false ;
  42. }
  43. }
  44. public void mouseDragged ( MouseEvent e ) {
  45. if ( _canDrag ) {
  46.  
  47. _ballX = e . getX () - _dragFromX ;
  48. _ballY = e . getY () - _dragFromY ;
  49.  
  50.  
  51. _ballX = Math . max ( _ballX , 0) ;
  52. _ballX = Math . min ( _ballX , getWidth () - BALL_DIAMETER
  53. ) ;
  54. _ballY = Math . max ( _ballY , 0) ;
  55. _ballY = Math . min ( _ballY , getHeight () -
  56. BALL_DIAMETER ) ;
  57. this . repaint () ;}
  58. }
  59. public void mouseExited ( MouseEvent e ) {
  60. _canDrag = false ;
  61. }
  62. public void mouseMoved ( MouseEvent e ) {}
  63.  
  64. public void mouseEntered ( MouseEvent e ) {}
  65.  
  66. public void mouseClicked ( MouseEvent e ) {}
  67.  
  68. public void mouseReleased ( MouseEvent e ) {}
  69.  
  70.  
  71.  
  72.  
  73.  
  74. }
  75.  
  76. import java .awt .*;
  77. import java . awt . event .*;
  78. import javax . swing .*;
  79. import javax . swing . event .*;
  80.  
  81. public class DragDemo {
  82. public static void main (String[] args) {
  83. JFrame window=new JFrame();
  84. window . setTitle (" Drag Demo ") ;
  85. window . setDefaultCloseOperation ( JFrame . EXIT_ON_CLOSE ) ;
  86. window . setContentPane ( new DragBallPanel () ) ;
  87. window . pack () ;
  88. window . show () ;
  89. }
  90.  
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement