使用JTextField在ActionListener中触发另一个操作

时间:2017-11-12 21:05:15

标签: java user-interface switch-statement actionlistener textfield

所以我有一个带有JTextField的GUI,它首先用于输入"主菜单",并且一旦输入菜单命令就执行一系列操作。例如,在下面的块中,我采取行动并使用开关/案例来获取用户输入的菜单选项,但现在我想在此操作中采取其他输入。在当前代码中,actionlistener将陷入无限循环,因为当我使用" .getText()"时它不会等待NEW输入。有没有办法使这项工作(记住我需要解析格式的每个输入)?或者我对ActionListener的理解是否完全有缺陷? 这是一个给出一些背景的小片段:

        @Override 
        public void actionPerformed(ActionEvent ae){

            while(command < 1 || command > 8){

                commandStr = textField.getText();
                try{
                    command = Integer.parseInt(commandStr);
                }catch(Exception e){
                    JOptionPane.showMessageDialog(null, "Invalid Command!");
                    command = 0;
                }
            }

            switch(command){

                case(1): //Add new book
                    while(!BS.validateFormat(bookType, BS.IF_BT)){
                        textArea.setText("Enter the book type by number");
                        textArea.append("1: Book  2: Textbook  3: Workbook");
                        try{
                            bookType = Integer.parseInt(textField.getText());

                        } catch(Exception e){}
                    }

0 个答案:

没有答案