java - JfileChooser wont show image selected inside Jpanel -
java - JfileChooser wont show image selected inside Jpanel -
i having no luck getting image show in jpanel when selected using java's jfilechooser. want selected image automatically resized , fit set size of jpanel?
here code have written far. jfilechooser shown in new jframe , want close jframe when image uploaded , viewable in jpanel.
here upload button should open jfilechooser, allow file selected , upload image (to resized, need help in how create image automatically resized), close jframe "frame" when image show in jpanel "picturepanel"?
edit: added sscce of trying accomplish.
i want after "upload" button click, show image sized appropriately (must fit jpanel "picture panel") show image in black bordered panel.
import classes.backgroundpanel; import java.awt.borderlayout; import java.awt.dimension; import java.awt.image; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.awt.image.bufferedimage; import java.io.*; import javax.swing.*; import javax.imageio.imageio; import javax.swing.filechooser.filenameextensionfilter;
public class test
{
public static void main(string[] args) { final jfilechooser chooser = new jfilechooser(); jbutton button = new jbutton(); button.settext("upload"); jframe frame = new jframe("my frame"); final jframe imageframe = new jframe(); frame.setdefaultcloseoperation(jframe.exit_on_close); jfilechooser fc = new jfilechooser(); final test_image t = new test_image(); jpanel panel = new jpanel(); jpanel picturepanel = new jpanel(); // chooser.showopendialog(null); dimension d = new dimension(1261, 765); dimension d2 = new dimension(1300, 900); picturepanel.setborder(javax.swing.borderfactory.createlineborder(new java.awt.color(0, 0, 0))); panel.setborder(javax.swing.borderfactory.createlineborder(new java.awt.color(0, 0, 0))); dimension d3 = new dimension(343, 247); picturepanel.setsize(d3); //picturepanel.setsize(d); panel.add(button); panel.setsize(d3); //panel.setvisible(true); //panel.add(picturepanel); button.addactionlistener(new actionlistener() { public void actionperformed(actionevent e) { if(chooser.showopendialog(imageframe) == jfilechooser.approve_option) { seek { image bi = imageio.read( chooser.getselectedfile()); backgroundpanel bp = new backgroundpanel(bi); if (bi != null) bp.setimage(bi); else joptionpane.showmessagedialog(imageframe, "file not image!"); } grab (ioexception ioe) { joptionpane.showmessagedialog(imageframe, "error reading file!");
} }
} }); frame.setsize(d2); frame.add(picturepanel).setlocation(100, 100); frame.add(panel); frame.setvisible(true); }
}
when dynamically removing/adding components basic code should be:
panel.add(...); panel.revalidate(); panel.repaint();
i don't know if problem because didn't post sscce. post proper sscce if need more help.
need help in how create image automatically resized),
then can't utilize jlabel. need custom painting , utilize graphics.drawimage(....) method.
you can take @ background panel allows draw image scaled or tiled (among other things).
java image swing jpanel jfilechooser
Comments
Post a Comment