Removing the selected image in java -


i working on images .

i have created 2 buttons addbutton , removebutton

addbutton adds image using jfilechooser appends jlabel

and removebutton remove image

i have added 4 images using addbutton

now i want click on image , when press remove button not getting removed

i new swing please me

thank you

edited : code

import java.awt.container; import java.awt.flowlayout; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.awt.event.focusadapter; import java.awt.event.focusevent; import java.awt.image.bufferedimage; import java.io.file; import java.io.ioexception; import javax.imageio.imageio; import javax.swing.imageicon; import javax.swing.jbutton; import javax.swing.jfilechooser; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.joptionpane; import javax.swing.jtextarea; import javax.swing.filechooser.filenameextensionfilter;  public class imagecreation extends jframe  {     jbutton browsebtn=new jbutton("browse");     jbutton removebtn=new jbutton("remove");     string filename;      bufferedimage img;     jlabel imglbl;     private volatile jlabel lastfocused;      public imagecreation()     {         setsize(500,500);         setvisible(true);         setlayout(new flowlayout());         setdefaultcloseoperation(jframe.exit_on_close);         add(browsebtn);         add(removebtn);           browsebtn.addactionlistener(new actionlistener()         {             public void actionperformed(actionevent ae)             {                 jfilechooser chooser = new jfilechooser();                 chooser.setmultiselectionenabled(true);                 chooser.addchoosablefilefilter(new                         filenameextensionfilter("images", "jpg", "png", "gif", "bmp"));                 chooser.setacceptallfilefilterused(false);                 chooser.setcurrentdirectory(new                             file(system.getproperty("user.home")));                 int option = chooser.showopendialog(imagecreation.this);                 if(option == jfilechooser.approve_option) {                     filename=chooser.getselectedfile().tostring();                      try {                         img = imageio.read(new file(filename));                         imglbl = new jlabel();                         imglbl.seticon(new imageicon(img));                         imglbl.setbounds(150,50,img.getwidth(),img.getheight());                         add(imglbl);                         imglbl.addfocuslistener(new focusadapter()                         {                             public void focusgained(focusevent e)                             {                                 if (e.getcomponent() instanceof jlabel)                                      lastfocused = (jlabel) e.getcomponent();                             }                         });                          imglbl.repaint();                      } catch (ioexception e) { }                      }                 }             });              removebtn.addactionlistener(new actionlistener()              {                 @override                 public void actionperformed(actionevent e)                  {                     if(lastfocused==null)                         joptionpane.showmessagedialog(null,"you must select label remove it");                     if (lastfocused != null)                      {                         container scollpane = lastfocused;                         system.out.println(scollpane);                         container parent = scollpane.getparent();                         system.out.println(parent);                         parent.remove(scollpane);                     }                 }             });      }          public static void main(string args[])         {             new imagecreation();         }     } 

jlabel doesn't have keyboard focus, mouse.

i didn't change code, made working:

imglbl.addmouselistener(new mouseadapter() {      @override     public void mouseclicked(mouseevent e) {          if (e.getcomponent() instanceof jlabel)              lastfocused = (jlabel) e.getcomponent();      }  }); 

you have repaint after deletion, add repaint() after code:

    if (lastfocused != null) {       container scollpane = lastfocused;       system.out.println(scollpane);         container parent = scollpane.getparent();         system.out.println(parent);         parent.remove(scollpane);     }     repaint(); // repainting after removal 

please, copy , paste following code. should work

import java.awt.container; import java.awt.flowlayout; import java.awt.event.*; import java.awt.image.bufferedimage; import java.io.file; import java.io.ioexception; import javax.imageio.imageio; import javax.swing.imageicon; import javax.swing.jbutton; import javax.swing.jfilechooser; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.joptionpane; import javax.swing.jtextarea; import javax.swing.filechooser.filenameextensionfilter;  public class imagecreation extends jframe {     jbutton browsebtn=new jbutton("browse");     jbutton removebtn=new jbutton("remove");     string filename;     bufferedimage img;     jlabel imglbl;     private volatile jlabel lastfocused;      public imagecreation()     {         setsize(500,500);         setvisible(true);         setlayout(new flowlayout());         setdefaultcloseoperation(jframe.exit_on_close);         add(browsebtn);         add(removebtn);          browsebtn.addactionlistener(new actionlistener()         {             public void actionperformed(actionevent ae)             {                 jfilechooser chooser = new jfilechooser();                 chooser.setmultiselectionenabled(true);                 chooser.addchoosablefilefilter(new                         filenameextensionfilter("images", "jpg", "png", "gif", "bmp"));                 chooser.setacceptallfilefilterused(false);                 chooser.setcurrentdirectory(new                         file(system.getproperty("user.home")));                 int option = chooser.showopendialog(imagecreation.this);                 if(option == jfilechooser.approve_option) {                     filename=chooser.getselectedfile().tostring();                      try {                         img = imageio.read(new file(filename));                         imglbl = new jlabel();                         imglbl.seticon(new imageicon(img));                         imglbl.setbounds(150,50,img.getwidth(),img.getheight());                         add(imglbl);                         imglbl.addmouselistener(new mouseadapter() {                             @override                             public void mouseclicked(mouseevent e) {                                 if (e.getcomponent() instanceof jlabel)                                     lastfocused = (jlabel) e.getcomponent();                             }                         });                          imglbl.repaint();                      } catch (ioexception e) { }                  }             }         });          removebtn.addactionlistener(new actionlistener()         {             @override             public void actionperformed(actionevent e)             {                 if(lastfocused==null)                     joptionpane.showmessagedialog(null,"you must select label remove it");                 if (lastfocused != null)                 {                     container scollpane = lastfocused;                     system.out.println(scollpane);                     container parent = scollpane.getparent();                     system.out.println(parent);                     parent.remove(scollpane);                 }                 repaint();             }         });      }      public static void main(string args[])     {         new imagecreation();     } } 

Comments