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.
the
initcomponents()
not static function .i guess in static conversion replaced every function public static .and below constructor [i'm sure becausenetbeans
generated one] , have modified also.no need thatpublic static void profilepanel() { initcomponents(); }
you can change way was
public profilepanel() { initcomponents(); }
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";
you'll again
java.lang.nullpointerexception
@permiteduser[0] = new usersinfo(s1[0], s1[1], s1[2]);
because haven't initialized
permiteduser
anywhere.so have likestatic 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
Post a Comment