java - How to drag and drop the image above to the below image where if 1st image on top is touch with the 1st image below will provide value to be recorded -


package project;  import java.awt.color;  import java.awt.component;`` import java.awt.point;  import java.awt.toolkit;  import java.awt.event.mouseadapter;  import java.awt.event.mouseevent; import java.net.malformedurlexception;  import java.net.url; import java.util.random; import javax.swing.imageicon;  import javax.swing.jframe;  import javax.swing.jlabel;  import javax.swing.jlayeredpane; import javax.swing.swingutilities;  public class dragimage {        private jlayeredpane contentpane;    jlabel[] draggableimage= new jlabel[11];    imageicon[] image = new imageicon[11];    imageicon imagebox = new imageicon();    jlabel[] box = new jlabel[11];       public dragimage() throws malformedurlexception {        jframe frame = new jframe(dragimage.class.getsimplename());        frame.setdefaultcloseoperation(jframe.exit_on_close);        contentpane = new jlayeredpane();        contentpane.setbackground(color.white);        contentpane.setopaque(true);        frame.setcontentpane(contentpane);        frame.setsize(toolkit.getdefaulttoolkit().getscreensize());        frame.setextendedstate(frame.getextendedstate() | jframe.maximized_both);        frame.setvisible(true);        image[1] = new imageicon("1.png");        image[2] = new imageicon("2.png");        image[3] = new imageicon("3.png");        image[4] = new imageicon("4.png");        image[5] = new imageicon("5.png");        image[6] = new imageicon("6.png");        image[7] = new imageicon("7.png");        image[8] = new imageicon("8.png");        image[9] = new imageicon("9.png");        image[10] = new imageicon("10.png");          imagebox = new imageicon("box1.png");        mousedragger dragger = new mousedragger();        random random = new random();        int total = 10;        int x=135;        for(int i=1;i<11;i++)        {         draggableimage[i] = new jlabel(image[i]);            draggableimage[i].setsize(120,120);            draggableimage[i].setlocation(total,20);            dragger.makedraggable(draggableimage[i]);            contentpane.add(draggableimage[i]);             box[i] = new jlabel(imagebox);            box[i].setsize(120,120);`enter code here`enter code here`            box[i].setlocation(total,contentpane.getheight()-150);            dragger.makedraggable(box[i]);            contentpane.add(box[i]);             total += x;        }        contentpane.repaint();       }        public static class mousedragger extends mouseadapter {        private point lastlocation;        private component draggedcomponent;        private int ans;         @override        public void mousepressed(mouseevent e) {            draggedcomponent = e.getcomponent();            lastlocation = swingutilities.convertpoint(draggedcomponent, e.getpoint(),    draggedcomponent.getparent());        }         @override        public void mousedragged(mouseevent e) {            point location = swingutilities.convertpoint(draggedcomponent, e.getpoint(),    draggedcomponent.getparent());            if (draggedcomponent.getparent().getbounds().contains(location)) {                point newlocation = draggedcomponent.getlocation();                newlocation.translate(location.x - lastlocation.x, location.y - lastlocation.y);                newlocation.x = math.max(newlocation.x, 0);                newlocation.x = math.min(newlocation.x, draggedcomponent.getparent().getwidth() -    draggedcomponent.getwidth());                newlocation.y = math.max(newlocation.y, 0);                newlocation.y = math.min(newlocation.y, draggedcomponent.getparent().getheight() -    draggedcomponent.getheight());                draggedcomponent.setlocation(newlocation);                lastlocation = location;             }        }          @override        public void mousereleased(mouseevent e) {            lastlocation = null;            draggedcomponent = null;         }         public void makedraggable(component component) {            component.addmouselistener(this);            component.addmousemotionlistener(this);        }        }        public static void main(string[] args) {        swingutilities.invokelater(new runnable() {             @override            public void run() {                try {                    new dragimage();                } catch (malformedurlexception e) {                    // todo auto-generated catch block                    e.printstacktrace();                }            }        });    } } 

first, should use jlabels , add them mouseevents when drag mouse above of them, can drop below. second, below images should calculate positons , widths can find whether above images drop on below images. created picture understand. should make above images fulfill these 2 conditions. hereenter image description here

and i'm going add codes here. tried few times, think it's working want.

import java.awt.eventqueue; import javax.swing.jframe; import javax.swing.jpanel; import java.awt.borderlayout; import javax.swing.jeditorpane; import java.awt.gridlayout; import java.awt.gridbaglayout; import javax.swing.jlabel; import java.awt.gridbagconstraints; import java.awt.insets; import java.awt.event.mouseevent; import java.awt.event.mouselistener;  import javax.swing.imageicon;   public class example {      private jframe frame;     jlabel iconbelow1;     jlabel iconbelow2;     jlabel iconbelow3;     int x1;     int x2;     int x3;     int w1;     int w2;     int w3;     int point;     jlabel pointarea;     jlabel icon1;     jlabel icon2;     jlabel icon3;     jlabel icon4;     jlabel icon5;     int c = 0;     /**      * launch application.      */     public static void main(string[] args) {         eventqueue.invokelater(new runnable() {             public void run() {                 try {                     example window = new example();                     window.frame.setvisible(true);                 } catch (exception e) {                     e.printstacktrace();                 }             }         });     }      /**      * create application.      */     public example() {         initialize();     }      /**      * initialize contents of frame.      */     private void initialize() {         frame = new jframe();         frame.setbounds(100, 100, 450, 381);         frame.setdefaultcloseoperation(jframe.exit_on_close);         frame.getcontentpane().setlayout(new borderlayout(0, 0));          jpanel panel = new jpanel();         frame.getcontentpane().add(panel, borderlayout.center);         panel.setlayout(null);          icon1 = new jlabel("");         icon1.seticon(new imageicon("c:\\users\\gizem\\desktop\\yellowtree.jpg"));         icon1.setbounds(24, 55, 46, 48);         panel.add(icon1);          icon2 = new jlabel("");         icon2.seticon(new imageicon("c:\\users\\gizem\\desktop\\flower.jpg"));         icon2.setbounds(115, 55, 59, 48);         panel.add(icon2);          icon3 = new jlabel("");         icon3.seticon(new imageicon("c:\\users\\gizem\\desktop\\2.jpg"));         icon3.setbounds(207, 55, 46, 48);         panel.add(icon3);          icon4 = new jlabel("new label");         icon4.seticon(new imageicon("c:\\users\\gizem\\desktop\\4.jpg"));         icon4.setbounds(286, 55, 46, 48);         panel.add(icon4);          icon5 = new jlabel("new label");         icon5.seticon(new imageicon("c:\\users\\gizem\\desktop\\6.jpg"));         icon5.setbounds(378, 55, 46, 48);         panel.add(icon5);          iconbelow1 = new jlabel("");         iconbelow1.seticon(new imageicon("c:\\users\\gizem\\desktop\\back.jpg"));         iconbelow1.setbounds(0, 226, 109, 25);         panel.add(iconbelow1);          iconbelow2 = new jlabel("new label");         iconbelow2.seticon(new imageicon("c:\\users\\gizem\\desktop\\back.jpg"));         iconbelow2.setbounds(356, 226, 68, 25);         panel.add(iconbelow2);          iconbelow3 = new jlabel("new label");         iconbelow3.seticon(new imageicon("c:\\users\\gizem\\desktop\\back.jpg"));         iconbelow3.setbounds(205, 226, 75, 25);         panel.add(iconbelow3);          pointarea = new jlabel("point:");         pointarea.setbounds(10, 11, 46, 14);         panel.add(pointarea);          mylistener listener = new mylistener();         icon1.addmouselistener(listener);         icon2.addmouselistener(listener);         icon3.addmouselistener(listener);         icon4.addmouselistener(listener);         icon5.addmouselistener(listener);          system.out.println(iconbelow1.getx());         system.out.println(iconbelow2.getx());         system.out.println(iconbelow3.getx());          x1 = iconbelow1.getx();         x2 = iconbelow2.getx();         x3 = iconbelow3.getx();         w1 = iconbelow1.getwidth();         w2 = iconbelow2.getwidth();         w3 = iconbelow3.getwidth();       } private  class mylistener implements mouselistener {            public void mousepressed(mouseevent arg0) {          }          @override         public void mouseclicked(mouseevent e) {           }          @override         public void mouseentered(mouseevent e) {             int = ((jlabel) e.getsource()).getx();             int b = ((jlabel) e.getsource()).gety();             system.out.println("position x : " + + " " + "position y : " + b);             b += 210;             //b += 150;              ((jlabel) e.getsource()).setlocation(a, b);             if(((jlabel) e.getsource()) == icon1 ){                  if (a  < iconbelow1.getx() + iconbelow1.getwidth() && !(iconbelow1.getx() > + ((jlabel) e.getsource()).getwidth()) ){                     point += 1;                     pointarea.settext(integer.tostring(point));                  }                 else if (a  < iconbelow2.getx() + iconbelow2.getwidth() && !(iconbelow2.getx()  > + ((jlabel) e.getsource()).getwidth()) ){                     point += 1;                     pointarea.settext(integer.tostring(point));                  }                 else if (a  < iconbelow3.getx() + iconbelow3.getwidth() && !(iconbelow3.getx()  > + ((jlabel) e.getsource()).getwidth() )){                     point += 1;                     pointarea.settext(integer.tostring(point));                  }             }             else if(((jlabel) e.getsource()) == icon2 ){                  if (a  < iconbelow1.getx() + iconbelow1.getwidth() && !(iconbelow1.getx() > + ((jlabel) e.getsource()).getwidth() )){                     point += 1;                     pointarea.settext(integer.tostring(point));                 }                 else if (a  < iconbelow2.getx() + iconbelow2.getwidth() && !(iconbelow2.getx()  > + ((jlabel) e.getsource()).getwidth() )){                     point += 1;                     pointarea.settext(integer.tostring(point));                 }                 else if (a  < iconbelow3.getx() + iconbelow3.getwidth() && !(iconbelow3.getx()  > + ((jlabel) e.getsource()).getwidth() )){                     point += 1;                     pointarea.settext(integer.tostring(point));                 }             }             else if(((jlabel) e.getsource()) == icon3 ){                  if (a  < iconbelow1.getx() + iconbelow1.getwidth() && !(iconbelow1.getx() > + ((jlabel) e.getsource()).getwidth() )){                     point += 1;                     pointarea.settext(integer.tostring(point));                 }                 else if (a  < iconbelow2.getx() + iconbelow2.getwidth() && !(iconbelow2.getx()  > + ((jlabel) e.getsource()).getwidth() )){                     point += 1;                     pointarea.settext(integer.tostring(point));                 }                 else if (a  < iconbelow3.getx() + iconbelow3.getwidth() && !(iconbelow3.getx()  > + ((jlabel) e.getsource()).getwidth() )){                     point += 1;                     pointarea.settext(integer.tostring(point));                 }             }             else if(((jlabel) e.getsource()) == icon4 ){                  if (a  < iconbelow1.getx() + iconbelow1.getwidth() && !(iconbelow1.getx() > + ((jlabel) e.getsource()).getwidth() )){                     point += 1;                     pointarea.settext(integer.tostring(point));                 }                 else if (a  < iconbelow2.getx() + iconbelow2.getwidth() && !(iconbelow2.getx()  > + ((jlabel) e.getsource()).getwidth() )){                     point += 1;                     pointarea.settext(integer.tostring(point));                 }                 else if (a  < iconbelow3.getx() + iconbelow3.getwidth() && !(iconbelow3.getx()  > + ((jlabel) e.getsource()).getwidth() )){                     point += 1;                     pointarea.settext(integer.tostring(point));                 }             }             else if(((jlabel) e.getsource()) == icon5 ){                  if (a  < iconbelow1.getx() + iconbelow1.getwidth() && !(iconbelow1.getx()  > + ((jlabel) e.getsource()).getwidth() )){                     point += 1;                     pointarea.settext(integer.tostring(point));                 }                 else if (a  < iconbelow2.getx() + iconbelow2.getwidth() && !(iconbelow2.getx() > + ((jlabel) e.getsource()).getwidth() )){                     point += 1;                     pointarea.settext(integer.tostring(point));                 }                 else if (a  < iconbelow3.getx() + iconbelow3.getwidth() && !(iconbelow3.getx() > + ((jlabel) e.getsource()).getwidth() )){                     point += 1;                     pointarea.settext(integer.tostring(point));                 }             }             }          @override         public void mouseexited(mouseevent e) {             // todo auto-generated method stub          }          @override         public void mousereleased(mouseevent e) {             // todo auto-generated method stub          }     } } 

note: tried answer question way understood. did want or meant different something?


Comments

Popular posts from this blog

php - Invalid Cofiguration - yii\base\InvalidConfigException - Yii2 -

How to show in django cms breadcrumbs full path? -

ruby on rails - npm error: tunneling socket could not be established, cause=connect ETIMEDOUT -