Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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_Loops_Jframe_Jbutton - Fatal编程技术网

Java 循环中的按钮操作侦听器

Java 循环中的按钮操作侦听器,java,swing,loops,jframe,jbutton,Java,Swing,Loops,Jframe,Jbutton,我已经开始编程(一般来说)4天前,所以我仍然是一个相当的noob:p而且,我的代码可能是不可读的:/ 程序背后的想法:我输入一些单词(来自我想学习的语言),然后将这些单词放入ArrayList。然后我按下一个按钮将整个ArrayList写入一个文件,程序的第二部分就变得相关了 现在,这就是我需要你帮助的地方 我想将JLabel设置为ArrayList的随机字符串(我是用 Random rand=new Random(); int randomIndex=rand.nextInt(麦汁大小());

我已经开始编程(一般来说)4天前,所以我仍然是一个相当的noob:p而且,我的代码可能是不可读的:/

程序背后的想法:我输入一些单词(来自我想学习的语言),然后将这些单词放入ArrayList。然后我按下一个按钮将整个ArrayList写入一个文件,程序的第二部分就变得相关了

现在,这就是我需要你帮助的地方

我想将JLabel设置为ArrayList的随机字符串(我是用

Random rand=new Random();
int randomIndex=rand.nextInt(麦汁大小());
jlabelwordask.setText(wort.get(randomIndex));
(wort是我的ArrayList),到目前为止它仍然有效

我制作了两个按钮,一个是“我知道”和一个是“我不知道”。“我知道”应该从麦汁中删除我设置的JLabelwordask to(wort.get(randomIndex))字符串,然后将JLabel重置为一个新的麦汁随机字符串。 “我不知道”应该只是将JLabel重置为一个新的随机麦汁字符串。 重复此操作,直到麦汁为空或按下“停止”按钮,然后writeToFile();(将麦汁内容写入文件,此操作已起作用。)

我试着这样做:

while (!wort.isEmpty()) {
        Random rand = new Random();
        int randomIndex;
        randomIndex = rand.nextInt(wort.size());


        btnGewusst.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {



                wort.remove(randomIndex);
                lblWortabfrage.setText(wort.get(randomIndex));
                zuLernen();

            }
        });

        btnNichtGewusst.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {

                lblWortabfrage.setText(wort.get(randomIndex));
            }
        });

    } 
不幸的是,它不起作用。(不过,它对我的控制台版本的程序起了作用:() 你们会怎么做? 以下是整个程序的源代码:
注意:JLabelWordAskes是lblWortabfrage,“我知道”是btngewust,“我不知道”是btnnichtgewust和zuLernen()只是将麦汁中的所有字符串放在一个字符串zuLernen中。

不要使用
辱骂性/冒犯性的
语言!!更好?:)@NeerajJainGet摆脱循环,这不是GUI的工作方式,它们是事件驱动的,并且往往不会以线性方式工作。那么我写什么来获得我想要的结果呢?这就是为什么我发布这个问题的原因@MadProgrammerYou写的是某种方法,你可以调用它来响应其他事件/更改,比如用户键入字符字符