Rambler's Top100

А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Э Ю Я

Все примеры | Примеры по пакетам

Перетаскивание прямоугольников


//Перетаскивание прямоугольников
//Dragging rectangles
package graphics;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.dnd.DragSource;
import java.awt.geom.Rectangle2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTree;
import java.awt.Cursor;
public class dragRectangles extends JFrame {
    private int draggedX = 55;
    private int draggedY = 55;
    private int draggedW = 22;
    private int draggedH = 22;
    LinePanel linePanel = new LinePanel();
    DragSource dragSource;
    Rectangle2D rectangle1,rectangle2,rectangle3;
    Boolean rectVisble1,rectVisble2,rectVisble3;
    Rectangle2D draggedRectangle;
    int x=55;
    int y=55;
    int xstart=0;
    int ystart=0;
    int xend=0;
    int yend=0;
    int x1=55;
    int y1=55;
    int x2=11;
    int y2=11;
    int x3=95;
    int y3=75;
 dragRectangles()
         {
     rectVisble1=true;
     rectVisble2=true;
     rectVisble3=true;
         setDefaultCloseOperation(EXIT_ON_CLOSE);
         initContentPane();
         pack();
         setLocationRelativeTo(null);
         setSize(333,333);
         setVisible(true);
         JPanel jp=new JPanel();
         JTree jt=new JTree();
         jt.setVisible(true);
     }
private void initContentPane()
     {
     linePanel.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
            public void mouseDragged(java.awt.event.MouseEvent evt) {
                MouseDragged(evt);
            }
        });
     linePanel.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mousePressed(java.awt.event.MouseEvent evt) {
                MousePressed(evt);
            }
        });
     linePanel.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseReleased(java.awt.event.MouseEvent evt) {
                MouseReleased(evt);
            }
        });
         getContentPane().add(linePanel);
     }
private void MouseDragged(java.awt.event.MouseEvent evt) {
    rectVisble1=true;
     rectVisble2=true;
     rectVisble3=true;
    x=evt.getX();
    y=evt.getY();
    Graphics2D g2 = (Graphics2D)this.getGraphics();
    Rectangle2D rect11 = new Rectangle2D.Double( x, y, 33, 33 );
    getContentPane().setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
        if (draggedRectangle.equals(rectangle1)) {
            rectVisble1=false;
            movedragged(evt.getX(),evt.getY());
        }
         if (draggedRectangle.equals(rectangle2)) {
            rectVisble2=false;
            movedragged(evt.getX(),evt.getY());
        }
        if (draggedRectangle.equals(rectangle3)) {
            rectVisble3=false;
            movedragged(evt.getX(),evt.getY());
        }
    
   this.repaint();
    }
private void MousePressed(java.awt.event.MouseEvent evt) {
     Graphics2D g2 = (Graphics2D) this.getGraphics();
        xstart=evt.getX();
        ystart=evt.getY();
        draggedRectangle = new Rectangle2D.Double( xstart,ystart, 22, 22 );
if (!draggedRectangle.equals(null)&&rectangle1.contains(evt.getX(), evt.getY())) {
          System.out.println("rectangle1");
          draggedRectangle=rectangle1;
        }
if (!draggedRectangle.equals(null)&&rectangle2.contains(evt.getX(), evt.getY())) {
          System.out.println("rectangle2");
            draggedRectangle=rectangle2;
        }
if (!draggedRectangle.equals(null)&&rectangle3.contains(evt.getX(), evt.getY())) {
          System.out.println("rectangle3");
            draggedRectangle=rectangle3;
        }
                repaint();
    }
private void MouseReleased(java.awt.event.MouseEvent evt) {
getContentPane().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
        System.out.println(evt.getX());
        if (draggedRectangle.equals(rectangle1)) {
            x1=evt.getX();
            y1=evt.getY();
        }
        if (draggedRectangle.equals(rectangle2)) {
            x2=evt.getX();
            y2=evt.getY();
        }
        if (draggedRectangle.equals(rectangle3)) {
            x3=evt.getX();
            y3=evt.getY();
        }
    this.repaint();
    }
 private void movedragged(int x, int y) {
        int OFFSET = 1;
        if ((draggedX!=x) || (draggedY!=y)) {
            repaint(draggedX,draggedY,draggedW+OFFSET,draggedH+OFFSET);
            draggedX=x;
            draggedY=y;
           repaint(draggedX,draggedY,draggedW+OFFSET,draggedH+OFFSET);
        }
    }
  class LinePanel extends JPanel
         {
         LinePanel()
             {
             super();
         }
public void paintComponent(Graphics g)
          {
           super.paintComponent(g);
           Graphics2D g2 = (Graphics2D) g;
           g2.setColor(Color.RED);
           Integer refInt = new Integer(123);
           int xi=55;
           int yi=55;
           Rectangle2D rectTemp = new Rectangle2D.Double( 32, 42, 22, 22 );
           rectangle1 = new Rectangle2D.Double( x1, y1, 22, 22 );
           rectangle2 = new Rectangle2D.Double(x2, y2, 22, 22 );
           rectangle3 = new Rectangle2D.Double( x3, y3, 22, 22 );
           //Исходные прямоугольники
           if(rectVisble1==true){
               g2.draw( rectangle1 );
           }
           if(rectVisble2==true){
               g2.draw( rectangle2 );
           }
           if(rectVisble3==true){
               g2.draw( rectangle3 );
           }
         
           g2.drawRect(draggedX,draggedY,draggedW,draggedH);
           //Изображается во время движения
         }
     }
    public static void main(String[] args) {
       new dragRectangles();
    }
}

31.01.2009

Rambler's Top100


Ассоциативные ссылки