java - I can not get the ints to be elemets of the array -
i have lottery game problem , user picks 6 check boxes generate userpickednumber , numbers should added array. can see when run code numbers printed out when @ final array prints out the first 5 numbers "0" , lastly 1 entered properly. how did manage this?
also if need append question new code how do that?`
import java.awt.borderlayout; import java.awt.color; import java.awt.container; import java.awt.flowlayout; import java.awt.font; import java.awt.gridlayout; import java.awt.event.itemevent; import java.awt.event.itemlistener; import java.util.arrays; import javax.swing.jbutton; import javax.swing.jcheckbox; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.jpanel; public class jlottery2 extends jframe implements itemlistener { private string[] lotterynumbers = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30" }; private jpanel jp1 = new jpanel(); private jpanel jp2 = new jpanel(); private jpanel jp3 = new jpanel(new gridlayout(3, 10, 5, 5)); private jlabel jl1 = new jlabel("the lottery game!!!!!"); private jlabel jl2 = new jlabel( "to play, pick 6 number match randomly selected numbers."); private flowlayout layout = new flowlayout(); private gridlayout gridbase = new gridlayout(3, 1, 5, 5); private gridlayout grid = new gridlayout(3, 10, 5, 5); private font heading = new font("palatino linotype", font.bold, 24); private font bodytext = new font("palatino linotype", font.bold, 14); private color color1 = new color(4, 217, 225); private color color2 = new color(4, 225, 129); private int maxnumber = 6; private int counter = 0; private int[] randomnum; private int[] userpickednumbers; private int matchednumbers = 0; private jcheckbox checkbox[] = new jcheckbox[lotterynumbers.length]; private string temp; container con = getcontentpane(); public jlottery2() { super("the lottery game"); con.setlayout(gridbase); con.add(jp1); jp1.setlayout(layout); jp1.add(jl1); jl1.setfont(heading); jp1.setbackground(color1); con.add(jp2); jp2.setlayout(layout); jp2.add(jl2); jl2.setfont(bodytext); jp2.setbackground(color1); con.add(jp3); jp3.setlayout(grid); (int = 0; < lotterynumbers.length; i++) { // jcheckbox checkbox[] = new jcheckbox[lotterynumbers.length]; checkbox[i] = new jcheckbox(lotterynumbers[i]); jp3.add(checkbox[i]); jp3.setbackground(color2); checkbox[i].additemlistener(this); } setsize(500, 300); setdefaultcloseoperation(exit_on_close); } public void itemstatechanged(itemevent e) { /* * actions take user checks jcheckboxes */ if (e.getstatechange() == itemevent.selected && counter < maxnumber) { temp = ((jcheckbox) e.getsource()).gettext(); ((jcheckbox) e.getsource()).setenabled(false); int inttemp = integer.parseint(temp); userpickednumbers = new int[maxnumber]; userpickednumbers[counter] = inttemp; counter++; system.out.println("add counter"); system.out.println("the .gettext() returns " + ((jcheckbox) e.getsource()).gettext()); system.out.println("the tempoaray int " + inttemp); system.out.println("the number of picks " + counter); system.out.println("**************************************"); } /* * actions take when user has chosen 6 jcheckboxes */ if (counter == maxnumber) { system.out.println("the picks have maxxed out"); jcheckboxsetvisiblefalse(); randnumber(); compareresults(); } } /* * creates array of random lottery number called randomnum[] */ public void randnumber() { randomnum = new int[maxnumber]; (int = 0; < maxnumber; i++) { randomnum[i] = ((int) (math.random() * 100) % lotterynumbers.length + 1); } system.out.println("the randomnum array " + arrays.tostring(randomnum)); } /* * compares userpickednumbers[] randomnum[] */ private void compareresults() { system.out.println("the user picks " + arrays.tostring(userpickednumbers)); int = 0;// user int j = 0;// random { if (userpickednumbers[i] != randomnum[j] && j < randomnum.length - 1) { system.out.println("the user picked " + userpickednumbers[i] + " random number " + randomnum[j]); system.out.println("wrong guess " + j); system.out .println("the location of element in fisrt array " + i); system.out .println("the location of element in sec array " + j); j++; } else if (userpickednumbers[i] != randomnum[j] && j == 5) { system.out.println(userpickednumbers[i] + randomnum[j]); system.out.println("one lastly wrong guess " + j); system.out.println("the location of first array " + i); j = 0; i++; } else if (userpickednumbers[i] == randomnum[j]) { matchednumbers++; i++; j = 0; system.out.println("the number of right guesses " + matchednumbers); system.out.println("the valur of j is" + j); system.out.println("the valur of is" + i); } else if (randomnum[j] == randomnum.length && userpickednumbers[i] == randomnum[j]) { j = 0; i++; matchednumbers++; } } while (i < userpickednumbers.length); } private void jcheckboxsetvisiblefalse() { (int = 0; < lotterynumbers.length; i++) { checkbox[i].setvisible(false); } } public static void main(string[] args) { jlottery2 frame = new jlottery2(); frame.setvisible(true); }
}
you maintain initialising userpickednumbers
in itemstatechanged
event handler, means, initialising content 0
each time user clicks check box
initialise array @ start of game
java swing
No comments:
Post a Comment