Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我无法使整数成为数组的元素_Java_Swing - Fatal编程技术网

Java 我无法使整数成为数组的元素

Java 我无法使整数成为数组的元素,java,swing,Java,Swing,我有一个彩票游戏问题,用户选择了6个复选框来生成userPickedNumber,这些数字应该添加到数组中。正如您在运行代码时所看到的,数字会被打印出来,但当您查看最终数组时,它会将前5个数字打印为“0”,并且只正确输入了最后一个数字。我是怎么做到的 另外,如果我需要用新代码附加这个问题,我该怎么做` import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container;

我有一个彩票游戏问题,用户选择了6个复选框来生成userPickedNumber,这些数字应该添加到数组中。正如您在运行代码时所看到的,数字会被打印出来,但当您查看最终数组时,它会将前5个数字打印为“0”,并且只正确输入了最后一个数字。我是怎么做到的

另外,如果我需要用新代码附加这个问题,我该怎么做`

        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 six number that match the 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);
    for (int i = 0; i < 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 as user checks the 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 to counter");
        System.out.println("the .getText() returns "
                + ((JCheckBox) e.getSource()).getText());
        System.out.println("the tempoaray int is  " + intTemp);
        System.out.println("the number of picks is " + counter);
        System.out.println("**************************************");
    }
    /*
     * actions take when the user has chosen 6 JCheckboxes
     */
    if (counter == maxNumber) {
        System.out.println("the picks have maxxed out");
        JCheckboxSetVisibleFalse();
        randNumber();
        compareResults();
    }
}

/*
 * creates an array of random lottery number called randomNum[]
 */
public void randNumber() {
    randomNum = new int[maxNumber];
    for (int i = 0; i < maxNumber; i++) {
        randomNum[i] = ((int) (Math.random() * 100) % lotteryNumbers.length + 1);
    }
    System.out.println("the randomNum array is "
            + Arrays.toString(randomNum));
}

/*
 * compares the userPickedNumbers[] to the randomNum[]
 */
private void compareResults() {
    System.out.println("the user picks are "
            + Arrays.toString(userPickedNumbers));
    int i = 0;// user
    int j = 0;// random
    do {
        if (userPickedNumbers[i] != randomNum[j]
                && j < randomNum.length - 1) {

            System.out.println("the user picked " + userPickedNumbers[i]
                    + " the random number is " + randomNum[j]);
            System.out.println("wrong guess " + j);
            System.out
                    .println("the location of the element in the fisrt array is "
                            + i);
            System.out
                    .println("the location of the element in the second array is "
                            + j);
            j++;

        } else if (userPickedNumbers[i] != randomNum[j] && j == 5) {

            System.out.println(userPickedNumbers[i] + randomNum[j]);
            System.out.println("one last wrong guess " + j);
            System.out.println("the location of the first array is " + i);
            j = 0;
            i++;

        } else if (userPickedNumbers[i] == randomNum[j]) {
            matchedNumbers++;
            i++;
            j = 0;
            System.out.println("the number of correct guesses are "
                    + matchedNumbers);
            System.out.println("the valur of j is" + j);
            System.out.println("the valur of i is" + i);

        } else if (randomNum[j] == randomNum.length
                && userPickedNumbers[i] == randomNum[j]) {
            j = 0;
            i++;
            matchedNumbers++;
        }

    } while (i < userPickedNumbers.length);

}

private void JCheckboxSetVisibleFalse() {
    for (int i = 0; i < lotteryNumbers.length; i++) {

        checkBox[i].setVisible(false);

    }
}

public static void main(String[] args) {
    JLottery2 frame = new JLottery2();
    frame.setVisible(true);
}
导入java.awt.BorderLayout;
导入java.awt.Color;
导入java.awt.Container;
导入java.awt.FlowLayout;
导入java.awt.Font;
导入java.awt.GridLayout;
导入java.awt.event.ItemEvent;
导入java.awt.event.ItemListener;
导入java.util.array;
导入javax.swing.JButton;
导入javax.swing.JCheckBox;
导入javax.swing.JFrame;
导入javax.swing.JLabel;
导入javax.swing.JPanel;
公共类JLottery2扩展JFrame实现ItemListener{
私有字符串[]彩票号码={“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=新的JPanel();
private JPanel jp2=新的JPanel();
private JPanel jp3=新JPanel(新网格布局(3,10,5,5));
私人JLabel jl1=新JLabel(“彩票游戏!!!”);
专用JLabel jl2=新JLabel(
“要玩,请选择六个与随机选择的数字匹配的数字。”);
私有FlowLayout=新FlowLayout();
private GridLayout gridBase=新的GridLayout(3,1,5,5);
私有网格布局=新网格布局(3,10,5,5);
专用字体标题=新字体(“Palatino-Linotype”,Font.BOLD,24);
私有字体bodyText=新字体(“Palatino-Linotype”,Font.BOLD,14);
专用颜色color1=新颜色(4217225);
专用颜色2=新颜色(425129);
私有整数maxNumber=6;
专用整数计数器=0;
私有int[]随机数;
私有int[]userpickedNumber;
私有整数匹配数=0;
私有JCheckBox复选框[]=新JCheckBox[lotteryNumbers.length];
私有字符串温度;
容器con=getContentPane();
公共JLottery2(){
超级(“彩票游戏”);
con.设置布局(gridBase);
补充条款(jp1);
jp1.设置布局(布局);
jp1.add(jl1);
jl1.设置字体(标题);
jp1.挫折背景(颜色1);
补充条款(jp2);;
jp2.设置布局(布局);
jp2.add(jl2);
jl2.setFont(bodyText);
jp2.挫折背景(颜色1);
续(jp3);;
jp3.设置布局(网格);
for(int i=0;i