所以我有一个带有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){}
}