Guest User

Untitled

a guest
Nov 21st, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. import java.util.*;
  2. import java.awt.geom.*;
  3. import java.awt.geom.Ellipse2D;
  4. import javax.swing.*;
  5. import java.awt.*;
  6. import java.awt.event.*;
  7.  
  8. public class MoveCircle {
  9. public static void main(String[] args) {
  10. System.out.println("Перемещение круга");
  11. MyFrame frame = new MyFrame();
  12. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  13. frame.show();
  14. }
  15. }
  16. class MyFrame extends JFrame
  17. {
  18. public MyFrame(){
  19. setTitle("Поле");
  20. setSize(500,500);
  21. setVisible(true);
  22. MyPanel panel = new MyPanel();
  23. Container pane = getContentPane();
  24. pane.add(panel);
  25. }
  26. }
  27. class MyPanel extends JPanel {
  28. private ArrayList circle;
  29. private Ellipse2D current;
  30. public MyPanel(){
  31. circle = new ArrayList();
  32. current = null;
  33. addMouseListener (new MyMouse());
  34. addMouseMotionListener(new myMove());
  35. }
  36. public void paintCompnent(Graphics g){
  37. super.paintComponent(g);
  38. Graphics2D g2 = (Graphics2D) g;
  39. g2.setBackground(Color.white);
  40. for (int i=0;i<circle.size();i++)
  41. {
  42. g2.setColor(new Color ((i*200+20)%255,(i*80+10)%255,(i*100+50)%255));
  43. g2.fill((Ellipse2D)circle.get(i));
  44. }
  45. }
  46. public void add(Point p){
  47. current = new Ellipse2D.Double(p.getX()-10,p.getY()-10,20,20);
  48. circle.add(current);
  49. repaint();
  50. }
  51. public Ellipse2D find(Point2D p){
  52. for(int i=0;i<circle.size();i++)
  53. {
  54. Ellipse2D e=(Ellipse2D) circle.get(i);
  55. if(e.contains(p)) return e;
  56. }
  57. return null;
  58. }
  59. public void remove(Ellipse2D e){
  60. if(e==null) return;
  61. if(e==current) current=null;
  62. circle.remove(e);
  63. repaint();
  64. }
  65.  
  66. private class MyMouse extends MouseAdapter{
  67. public void mousePressed(MouseEvent event){
  68. current = find(event.getPoint());
  69. if (current == null)
  70. add(event.getPoint());
  71. }
  72. public void mouseClicled(MouseEvent event){
  73. if (event.getClickCount()>=2){
  74. current = find(event.getPoint());
  75. if (current != null)
  76. remove (current);
  77. }
  78.  
  79. }
  80. }
  81. private class myMove implements MouseMotionListener{
  82. public void mouseMoved(MouseEvent event){
  83. if(find(event.getPoint())==null)
  84. setCursor(Cursor.getDefaultCursor());
  85. else
  86. setCursor(Cursor.getPredefinedCursor
  87. (Cursor.CROSSHAIR_CURSOR));
  88. }
  89. public void mouseDragged(MouseEvent event){
  90. if(current!=null){
  91. current.setFrame(event.getX()-10,event.getY()-10,20,20);
  92. repaint();
  93. }
  94. }
  95. }
  96. }
Add Comment
Please, Sign In to add comment