java - What is the proper way to set a JLabel to show an image? -


below snippet create imageicon , jlabel:

imageicon armorshopicon = new imageicon("/images/armorshop.png", "armor shop"); jlabel armorshoplabel = new jlabel("armor shop", armorshopicon, jlabel.center);  object.setarmorimage(armorshoplabel); 

then in object class have setter:

public void setarmorimage(jlabel label) {     this.jlabel1 = label; } 

this doesn't show image when test application , wondering if point out mistake

edit

most of source code:

main:

public class main extends javax.swing.jframe {      public main() {      initcomponents();      imageicon armoricon = new imageicon("/images/armorshop.png", "armor shop");     jlabel armorshoplabel = new jlabel("armor shop", armorshopicon, jlabel.center);      shopdisplay armorshop = new shopdisplay();     armorshop.setarmorimage(armorshoplabel);           public initcomponents() { /*more generated code here*/ }      } } 

display:

public class shopdisplay extends javax.swing.jpanel {      /** creates new form shopdisplay */     public shopdisplay() {         initcomponents();     }        //generated gui builder     //initcomponents     private void initcomponents() {     jlabel1 = new javax.swing.jlabel();     jlabel1.settext("shop name");         gridbagconstraints = new java.awt.gridbagconstraints();         gridbagconstraints.fill = java.awt.gridbagconstraints.both;         gridbagconstraints.weightx = 1.0;         gridbagconstraints.weighty = 1.0;         add(jlabel1, gridbagconstraints);     }      //variable declarationg     private javax.swing.jlabel jlabel1;       //setter shop name     public void setarmorimage(jlabel shoplabel) {         this.jlabel1 = shoplabel;     }      //other setters     //multiple jlabels  } 

the label pass not added gui, following method might help-

add jpanel container of jlabel1 , replace content:

i.e.:

    private javax.swing.jpanel containerpanel;     private void initcomponents() {         jlabel1 = new javax.swing.jlabel();         jlabel1.settext("shop name");         gridbagconstraints = new java.awt.gridbagconstraints();         gridbagconstraints.fill = java.awt.gridbagconstraints.both;         gridbagconstraints.weightx = 1.0;         gridbagconstraints.weighty = 1.0;         containerpanel = new javax.swing.jpanel();         containerpanel.add(jlabel1);         add(containerpanel, gridbagconstraints);     }      //variable declarationg     private javax.swing.jlabel jlabel1;       //setter shop name     public void setarmorimage(jlabel shoplabel) {         containerpanel.remove(jlabel1);         containerpanel.add(shoplabel);         jlabel1 = shoplabel;         revalidate();     } 

, if want add gui can 1 of following:

  1. set properties of jlabel1 properties of shoplabel, this.jlabel1.settext(shoplabel.gettext());

  2. or- remove jlabel1, add shoplabel , set this.jlabel1 shoplabel:

for example:

public void setarmorimage(jlabel shoplabel) {     remove(jlabel1);     add(shoplabel);     jlabel1 = shoplabel;     revalidate(); } 


Comments

Popular posts from this blog

objective c - Change font of selected text in UITextView -

php - Accessing POST data in Facebook cavas app -

c# - Getting control value when switching a view as part of a multiview -