java - How can I display images and different variables depends on some conditions in this code? -


i learning java , pretty new it. trying create static profile window using swing. also, avatar picture should change depending on user , user information should read text file. code doesnt give error because of avatarpath. think program thinks non-static.

import java.io.*; import java.io.ioexception; import java.util.scanner; import java.util.logging.level; import java.util.logging.logger; import javax.swing.joptionpane;   /**  *  * @author b_ali  */ public class profilepanel extends javax.swing.jframe {     public static string avatarpath;     public static int x;       public static class usersinfo{     public int userid;         public string username;     public string usersurname;     public string usergender;  usersinfo(string name, string surname, string gender){                  userid = x;         username = name;         usersurname = surname;         usergender = gender; } } static usersinfo permiteduser[]; public static void inforeader()throws ioexception{        @suppresswarnings("unusedassignment")        bufferedreader in = null;     try {         in = new bufferedreader(                 new filereader("c:\\users\\b_ali\\documents\\netbeansprojects\\javaapplication20\\userinformation.txt"));         string s, s2 = new string();         while((s = in.readline())!= null)             s2 += s + "\n";         @suppresswarnings("unusedassignment")                  string[] s1 = new string[100];         s1 = s2.split("\\s+");         in.close();         permiteduser[0] = new usersinfo( s1[0] , s1[1], s1[2] );         permiteduser[1] = new usersinfo ( s1[3], s1[4], s1[5] );         permiteduser[2] = new usersinfo ( s1[6], s1[7], s1[8] );      } catch (filenotfoundexception ex) {         logger.getlogger(profilepanel.class.getname()).log(level.severe, null, ex);     } {      } } public static void profilepanel() {     initcomponents(); } public static string avatarpic(){      if( x == 0 ){     avatarpath = "\"/users/hei_cosplay_darker_than_black_by_seras0victoria.jpg\"";     }     else if( x == 1 ){     avatarpath = "\"/users/lyralei_the_windrunner_by_trungth-d5zhmc1.jpg\"";         }     else if( x == 2 ){     avatarpath = "\"/users/shingeki_no_kyojin_by_asuka10-d6k762k.jpg\"";      }     return avatarpath;} @suppresswarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="generated code">                           private void initcomponents() {      jframe1 = new javax.swing.jframe();     jframe2 = new javax.swing.jframe();     jpanel1 = new javax.swing.jpanel();     jlabel1 = new javax.swing.jlabel();     jpanel2 = new javax.swing.jpanel();     jscrollpane2 = new javax.swing.jscrollpane();     jtextarea1 = new javax.swing.jtextarea();      javax.swing.grouplayout jframe1layout = new javax.swing.grouplayout(jframe1.getcontentpane());     jframe1.getcontentpane().setlayout(jframe1layout);     jframe1layout.sethorizontalgroup(         jframe1layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)         .addgap(0, 400, short.max_value)     );     jframe1layout.setverticalgroup(         jframe1layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)         .addgap(0, 300, short.max_value)     );      javax.swing.grouplayout jframe2layout = new javax.swing.grouplayout(jframe2.getcontentpane());     jframe2.getcontentpane().setlayout(jframe2layout);     jframe2layout.sethorizontalgroup(         jframe2layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)         .addgap(0, 400, short.max_value)     );     jframe2layout.setverticalgroup(         jframe2layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)         .addgap(0, 300, short.max_value)     );      setdefaultcloseoperation(javax.swing.windowconstants.exit_on_close);      jpanel1.setborder(javax.swing.borderfactory.createtitledborder(null, "avatar", javax.swing.border.titledborder.center, javax.swing.border.titledborder.top, new java.awt.font("tahoma", 1, 12))); // noi18n      jlabel1.setforeground(new java.awt.color(255, 255, 255));     jlabel1.sethorizontalalignment(javax.swing.swingconstants.center);     jlabel1.seticon(new javax.swing.imageicon(getclass().getresource(profilepanel.avatarpic())));     jlabel1.setborder(new javax.swing.border.lineborder(new java.awt.color(255, 255, 255), 2, true));      javax.swing.grouplayout jpanel1layout = new javax.swing.grouplayout(jpanel1);     jpanel1.setlayout(jpanel1layout);     jpanel1layout.sethorizontalgroup(         jpanel1layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)         .addcomponent(jlabel1, javax.swing.grouplayout.preferred_size, 200, javax.swing.grouplayout.preferred_size)     );     jpanel1layout.setverticalgroup(         jpanel1layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)         .addgroup(jpanel1layout.createsequentialgroup()             .addcomponent(jlabel1, javax.swing.grouplayout.preferred_size, 66, javax.swing.grouplayout.preferred_size)             .addgap(0, 0, short.max_value))     );      jpanel2.setborder(javax.swing.borderfactory.createtitledborder(null, "information", javax.swing.border.titledborder.center, javax.swing.border.titledborder.top, new java.awt.font("tahoma", 1, 12))); // noi18n      jscrollpane2.setname(""); // noi18n      jtextarea1.seteditable(false);     jtextarea1.setcolumns(20);     jtextarea1.setrows(5);     try {         profilepanel.inforeader();      // todo add handling code here:     } catch (ioexception ex) {         logger.getlogger(profilepanel.class.getname()).log(level.severe, null, ex);     }     jtextarea1.settext("name: " +permiteduser[x].username+ "\r\nsurname :"+permiteduser[x].usersurname+"\r\ngender :"+permiteduser[x].usergender);     jtextarea1.setdragenabled(true);     jtextarea1.setmaximumsize(new java.awt.dimension(2147483647, 120));     jtextarea1.setminimumsize(new java.awt.dimension(92, 120));     jtextarea1.setpreferredsize(new java.awt.dimension(164, 120));     jscrollpane2.setviewportview(jtextarea1);      javax.swing.grouplayout jpanel2layout = new javax.swing.grouplayout(jpanel2);     jpanel2.setlayout(jpanel2layout);     jpanel2layout.sethorizontalgroup(         jpanel2layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)         .addgroup(javax.swing.grouplayout.alignment.trailing, jpanel2layout.createsequentialgroup()             .addgap(0, 0, 0)             .addcomponent(jscrollpane2, javax.swing.grouplayout.preferred_size, javax.swing.grouplayout.default_size, javax.swing.grouplayout.preferred_size)             .addgap(0, 0, 0))     );     jpanel2layout.setverticalgroup(         jpanel2layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)         .addcomponent(jscrollpane2, javax.swing.grouplayout.alignment.trailing)     );      javax.swing.grouplayout layout = new javax.swing.grouplayout(getcontentpane());     getcontentpane().setlayout(layout);     layout.sethorizontalgroup(         layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)         .addgroup(layout.createsequentialgroup()             .addgap(50, 50, 50)             .addcomponent(jpanel1, javax.swing.grouplayout.preferred_size, javax.swing.grouplayout.default_size, javax.swing.grouplayout.preferred_size)             .addpreferredgap(javax.swing.layoutstyle.componentplacement.related, javax.swing.grouplayout.default_size, short.max_value)             .addcomponent(jpanel2, javax.swing.grouplayout.preferred_size, javax.swing.grouplayout.default_size, javax.swing.grouplayout.preferred_size)             .addgap(50, 50, 50))     );     layout.setverticalgroup(         layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)         .addgroup(layout.createsequentialgroup()             .addgap(27, 27, 27)             .addgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.leading, false)                 .addcomponent(jpanel1, javax.swing.grouplayout.default_size, javax.swing.grouplayout.default_size, short.max_value)                 .addcomponent(jpanel2, javax.swing.grouplayout.default_size, javax.swing.grouplayout.default_size, short.max_value))             .addcontainergap(120, short.max_value))     );      pack(); }// </editor-fold>                           public static void main(string args[]) {     /* set nimbus , feel */     //<editor-fold defaultstate="collapsed" desc=" , feel setting code (optional) ">     /* if nimbus (introduced in java se 6) not available, stay default , feel.      * details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html       */     scanner in = new scanner(system.in);     x = in.nextint();      try {         (javax.swing.uimanager.lookandfeelinfo info : javax.swing.uimanager.getinstalledlookandfeels()) {             if ("nimbus".equals(info.getname())) {                 javax.swing.uimanager.setlookandfeel(info.getclassname());                 break;             }         }     } catch (classnotfoundexception ex) {         java.util.logging.logger.getlogger(profilepanel.class.getname()).log(java.util.logging.level.severe, null, ex);     } catch (instantiationexception ex) {         java.util.logging.logger.getlogger(profilepanel.class.getname()).log(java.util.logging.level.severe, null, ex);     } catch (illegalaccessexception ex) {         java.util.logging.logger.getlogger(profilepanel.class.getname()).log(java.util.logging.level.severe, null, ex);     } catch (javax.swing.unsupportedlookandfeelexception ex) {         java.util.logging.logger.getlogger(profilepanel.class.getname()).log(java.util.logging.level.severe, null, ex);     }     //</editor-fold>      /* create , display form */     java.awt.eventqueue.invokelater(new runnable() {         public void run() {             new profilepanel().setvisible(true);         }     });   }  // variables declaration - not modify                      private javax.swing.jframe jframe1; private javax.swing.jframe jframe2; public javax.swing.jlabel jlabel1; private javax.swing.jpanel jpanel1; private javax.swing.jpanel jpanel2; public javax.swing.jscrollpane jscrollpane2; public javax.swing.jtextarea jtextarea1; // end of variables declaration                    } 

edit: changed code bit , gives error. edit2: trying creating users , profiles. profile contain avatar image , 3 variable name, surname , gender. want display them respect users.

i living problems codes;

static void avatarpic(){      if( x == 0 ){     avatarpath = "\"/users/hei_cosplay_darker_than_black_by_seras0victoria.jpg\"";     }     else if( x == 1 ){     avatarpath = "\"/users/lyralei_the_windrunner_by_trungth-d5zhmc1.jpg\"";         }     else if( x == 2 ){     avatarpath = "\"/users/shingeki_no_kyojin_by_asuka10-d6k762k.jpg\"";      }     } 

and

profilepanel.avatarpic(); jlabel1.seticon(new javax.swing.imageicon(getclass().getresource(profilepanel.avatarpath))); 

there many problems in code.

  1. the initcomponents() not static function .i guess in static conversion replaced every function public static .and below constructor [i'm sure because netbeans generated one] , have modified also.no need that

     public static void profilepanel() {    initcomponents();   } 

    you can change way was

    public profilepanel() {   initcomponents();  } 
  2. you'll java.lang.nullpointerexception @

    jlabel1.seticon(new javax.swing.imageicon(getclass().getresource(profilepanel.avatarpic()))); 

    because if using getresource have specify filename relative package.if you'll loading other location,then have change like

    jlabel1.seticon(new javax.swing.imageicon(profilepanel.avatarpic()));//file location 

    also have give absolute path

    avatarpath = "d://hei_cosplay_darker_than_black_by_seras0victoria.jpg"; 
  3. you'll again java.lang.nullpointerexception @

    permiteduser[0] = new usersinfo(s1[0], s1[1], s1[2]); 

    because haven't initialized permiteduser anywhere.so have like

    static usersinfo permiteduser[]=new usersinfo[3]; 

after making changes , if run 0 bk201[code name hei] on screen

and edited fullcode[make change imagelocations]

import java.io.*; import java.io.ioexception; import java.util.scanner; import java.util.logging.level; import java.util.logging.logger;  /**  *  * @author b_ali  */ public class profilepanel extends javax.swing.jframe {  public static string avatarpath; public static int x;  public static class usersinfo {      public int userid;     public string username;     public string usersurname;     public string usergender;      usersinfo(string name, string surname, string gender) {         userid = x;         username = name;         usersurname = surname;         usergender = gender;     } } static usersinfo permiteduser[] = new usersinfo[3];//change 3  public static void inforeader() throws ioexception {     @suppresswarnings("unusedassignment")     bufferedreader in = null;     try {         in = new bufferedreader(                 new filereader("c:\\users\\b_ali\\documents\\netbeansprojects\\javaapplication20\\userinformation.txt"));         string s, s2 = new string();         while ((s = in.readline()) != null) {             s2 += s + "\n";         }         @suppresswarnings("unusedassignment")          string[] s1 = new string[100];         s1 = s2.split("\\s+");         in.close();         permiteduser[0] = new usersinfo(s1[0], s1[1], s1[2]);         permiteduser[1] = new usersinfo(s1[3], s1[4], s1[5]);         permiteduser[2] = new usersinfo(s1[6], s1[7], s1[8]);      } catch (filenotfoundexception ex) {         logger.getlogger(profilepanel.class.getname()).log(level.severe, null, ex);     } {      } } //change 1 public profilepanel() {     initcomponents(); }  public static string avatarpic() { //change 2     if (x == 0) {         avatarpath = "d://hei_cosplay_darker_than_black_by_seras0victoria.jpg";     } else if (x == 1) {         avatarpath = "d://lyralei_the_windrunner_by_trungth-d5zhmc1.jpg";     } else if (x == 2) {         avatarpath = "d://shingeki_no_kyojin_by_asuka10-d6k762k.jpg";     }     return avatarpath; }  @suppresswarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="generated code">                               private void initcomponents() {      jframe1 = new javax.swing.jframe();     jframe2 = new javax.swing.jframe();     jpanel1 = new javax.swing.jpanel();     jlabel1 = new javax.swing.jlabel();     jpanel2 = new javax.swing.jpanel();     jscrollpane2 = new javax.swing.jscrollpane();     jtextarea1 = new javax.swing.jtextarea();      javax.swing.grouplayout jframe1layout = new javax.swing.grouplayout(jframe1.getcontentpane());     jframe1.getcontentpane().setlayout(jframe1layout);     jframe1layout.sethorizontalgroup(             jframe1layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)             .addgap(0, 400, short.max_value)     );     jframe1layout.setverticalgroup(             jframe1layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)             .addgap(0, 300, short.max_value)     );      javax.swing.grouplayout jframe2layout = new javax.swing.grouplayout(jframe2.getcontentpane());     jframe2.getcontentpane().setlayout(jframe2layout);     jframe2layout.sethorizontalgroup(             jframe2layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)             .addgap(0, 400, short.max_value)     );     jframe2layout.setverticalgroup(             jframe2layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)             .addgap(0, 300, short.max_value)     );      setdefaultcloseoperation(javax.swing.windowconstants.exit_on_close);      jpanel1.setborder(javax.swing.borderfactory.createtitledborder(null, "avatar", javax.swing.border.titledborder.center, javax.swing.border.titledborder.top, new java.awt.font("tahoma", 1, 12))); // noi18n      jlabel1.setforeground(new java.awt.color(255, 255, 255));     jlabel1.sethorizontalalignment(javax.swing.swingconstants.center);     //change 2     jlabel1.seticon(new javax.swing.imageicon(profilepanel.avatarpic()));     jlabel1.setborder(new javax.swing.border.lineborder(new java.awt.color(255, 255, 255), 2, true));      javax.swing.grouplayout jpanel1layout = new javax.swing.grouplayout(jpanel1);     jpanel1.setlayout(jpanel1layout);     jpanel1layout.sethorizontalgroup(             jpanel1layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)             .addcomponent(jlabel1, javax.swing.grouplayout.preferred_size, 200, javax.swing.grouplayout.preferred_size)     );     jpanel1layout.setverticalgroup(             jpanel1layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)             .addgroup(jpanel1layout.createsequentialgroup()                     .addcomponent(jlabel1, javax.swing.grouplayout.preferred_size, 66, javax.swing.grouplayout.preferred_size)                     .addgap(0, 0, short.max_value))     );      jpanel2.setborder(javax.swing.borderfactory.createtitledborder(null, "information", javax.swing.border.titledborder.center, javax.swing.border.titledborder.top, new java.awt.font("tahoma", 1, 12))); // noi18n      jscrollpane2.setname(""); // noi18n      jtextarea1.seteditable(false);     jtextarea1.setcolumns(20);     jtextarea1.setrows(5);     try {         profilepanel.inforeader();      // todo add handling code here:     } catch (ioexception ex) {         logger.getlogger(profilepanel.class.getname()).log(level.severe, null, ex);     }     jtextarea1.settext("name: " + permiteduser[x].username + "\r\nsurname :" + permiteduser[x].usersurname + "\r\ngender :" + permiteduser[x].usergender);     jtextarea1.setdragenabled(true);     jtextarea1.setmaximumsize(new java.awt.dimension(2147483647, 120));     jtextarea1.setminimumsize(new java.awt.dimension(92, 120));     jtextarea1.setpreferredsize(new java.awt.dimension(164, 120));     jscrollpane2.setviewportview(jtextarea1);      javax.swing.grouplayout jpanel2layout = new javax.swing.grouplayout(jpanel2);     jpanel2.setlayout(jpanel2layout);     jpanel2layout.sethorizontalgroup(             jpanel2layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)             .addgroup(javax.swing.grouplayout.alignment.trailing, jpanel2layout.createsequentialgroup()                     .addgap(0, 0, 0)                     .addcomponent(jscrollpane2, javax.swing.grouplayout.preferred_size, javax.swing.grouplayout.default_size, javax.swing.grouplayout.preferred_size)                     .addgap(0, 0, 0))     );     jpanel2layout.setverticalgroup(             jpanel2layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)             .addcomponent(jscrollpane2, javax.swing.grouplayout.alignment.trailing)     );      javax.swing.grouplayout layout = new javax.swing.grouplayout(getcontentpane());     getcontentpane().setlayout(layout);     layout.sethorizontalgroup(             layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)             .addgroup(layout.createsequentialgroup()                     .addgap(50, 50, 50)                     .addcomponent(jpanel1, javax.swing.grouplayout.preferred_size, javax.swing.grouplayout.default_size, javax.swing.grouplayout.preferred_size)                     .addpreferredgap(javax.swing.layoutstyle.componentplacement.related, javax.swing.grouplayout.default_size, short.max_value)                     .addcomponent(jpanel2, javax.swing.grouplayout.preferred_size, javax.swing.grouplayout.default_size, javax.swing.grouplayout.preferred_size)                     .addgap(50, 50, 50))     );     layout.setverticalgroup(             layout.createparallelgroup(javax.swing.grouplayout.alignment.leading)             .addgroup(layout.createsequentialgroup()                     .addgap(27, 27, 27)                     .addgroup(layout.createparallelgroup(javax.swing.grouplayout.alignment.leading, false)                             .addcomponent(jpanel1, javax.swing.grouplayout.default_size, javax.swing.grouplayout.default_size, short.max_value)                             .addcomponent(jpanel2, javax.swing.grouplayout.default_size, javax.swing.grouplayout.default_size, short.max_value))                     .addcontainergap(120, short.max_value))     );      pack(); }// </editor-fold>                          public static void main(string args[]) {     /* set nimbus , feel */     //<editor-fold defaultstate="collapsed" desc=" , feel setting code (optional) "> /* if nimbus (introduced in java se 6) not available, stay default , feel.      * details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html       */     scanner in = new scanner(system.in);     x = in.nextint();      try {         (javax.swing.uimanager.lookandfeelinfo info : javax.swing.uimanager.getinstalledlookandfeels()) {             if ("nimbus".equals(info.getname())) {                 javax.swing.uimanager.setlookandfeel(info.getclassname());                 break;             }         }     } catch (classnotfoundexception ex) {         java.util.logging.logger.getlogger(profilepanel.class.getname()).log(java.util.logging.level.severe, null, ex);     } catch (instantiationexception ex) {         java.util.logging.logger.getlogger(profilepanel.class.getname()).log(java.util.logging.level.severe, null, ex);     } catch (illegalaccessexception ex) {         java.util.logging.logger.getlogger(profilepanel.class.getname()).log(java.util.logging.level.severe, null, ex);     } catch (javax.swing.unsupportedlookandfeelexception ex) {         java.util.logging.logger.getlogger(profilepanel.class.getname()).log(java.util.logging.level.severe, null, ex);     }     //</editor-fold>      /* create , display form */     java.awt.eventqueue.invokelater(new runnable() {         public void run() {             new profilepanel().setvisible(true);         }     });  }  // variables declaration - not modify     private javax.swing.jframe jframe1; private javax.swing.jframe jframe2; public javax.swing.jlabel jlabel1; private javax.swing.jpanel jpanel1; private javax.swing.jpanel jpanel2; public javax.swing.jscrollpane jscrollpane2; public javax.swing.jtextarea jtextarea1; // end of variables declaration                    } 

Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -