java - Switch statement not incrementing correctly -
java - Switch statement not incrementing correctly -
i have button called nextad supposed show different set of images each time clicked, when click nil comes up.
question: why switch statement not causing different images show up?
preferably without utilize of array
public class advertisementpanel extends jpanel { advertisement apple = new advertisement("apple", new imageicon("./src/appleadvertisement.jpg"), new imageicon ("./src/applelogo.jpg")); advertisement ibm = new advertisement("ibm", new imageicon("./src/ibmadvertisement.jpg"), new imageicon ("./src/ibmlogo.jpg")); advertisement microsoft = new advertisement("microsoft", new imageicon("./src/microsoftadvertisement.jpg"), new imageicon ("./src/microsoftlogo.jpg")); advertisement samsung = new advertisement("samsung", new imageicon("./src/samsungadvertisement.jpg"), new imageicon ("./src/samsunglogo.jpg")); jlabel appletitle = new jlabel(apple.gettitle()); jlabel ibmtitle = new jlabel(ibm.gettitle()); jlabel microsofttitle = new jlabel(microsoft.gettitle()); jlabel samsungtitle = new jlabel(samsung.gettitle()); jlabel appleadpic = new jlabel(apple.getpicture1()); jlabel ibmadpic = new jlabel(ibm.getpicture1()); jlabel microsoftadpic = new jlabel(microsoft.getpicture1()); jlabel samsungadpic = new jlabel(samsung.getpicture1()); jlabel applelogo = new jlabel(apple.getpicture2()); jlabel ibmlogo = new jlabel(ibm.getpicture2()); jlabel microsoftlogo = new jlabel(microsoft.getpicture2()); jlabel samsunglogo = new jlabel(samsung.getpicture2()); jbutton nextad = new jbutton("click next advertisement"); public advertisementpanel() { //set panel setpreferredsize(new dimension(1200,1000)); setbackground(color.gray); //adds action listener button nextad.addactionlistener(new buttonlistener()); //for apple add(appletitle); add(appleadpic); add(applelogo); //for ibm add(ibmtitle); add(ibmadpic); add(ibmlogo); ibmtitle.setvisible(false); ibmadpic.setvisible(false); ibmlogo.setvisible(false); //for microsoft add(microsofttitle); add(microsoftadpic); add(microsoftlogo); microsofttitle.setvisible(false); microsoftadpic.setvisible(false); microsoftlogo.setvisible(false); //for samsung add(samsungtitle); add(samsungadpic); add(samsunglogo); samsungtitle.setvisible(false); samsungadpic.setvisible(false); samsunglogo.setvisible(false); //for button add(nextad); private class buttonlistener implements actionlistener { private int = 0; @override public void actionperformed(actionevent e) { if(e.getsource() == nextad); { i++; } switch (i){ case '1': { appletitle.setvisible(false); appleadpic.setvisible(false); applelogo.setvisible(false); ibmtitle.setvisible(true); ibmadpic.setvisible(true); ibmlogo.setvisible(true); break; } case '2':{ ibmadpic.setvisible(false); ibmlogo.setvisible(false); microsoftadpic.setvisible(true); microsoftlogo.setvisible(true); break; } case '3':{ microsoftadpic.setvisible(false); microsoftlogo.setvisible(false); samsungadpic.setvisible(true); samsunglogo.setvisible(true); break; } }
case '1': you're comparing char (the literal ascii character 1), not number. 1 49 in ascii, you're not comparing think are.
the braces after case foo: unnecessary. break statement breaking out of blocks , not out of case, should remove {}s.
you set private int = 0 inside click listener, it's set 0 , incremented 1, nothing. need declare outside of listener.
java image events button
Comments
Post a Comment