【发布时间】:2013-12-12 15:42:56
【问题描述】:
当我从控制台获得一些输入后想要打开 FileDialog 时,它会失败。
请参阅下面的代码。
当我第一次调用openFileDialog 然后chooseOption 它工作正常。
有人知道这怎么可能吗?
public class SomeClass
{
int choice = 2;
Scanner keyboard;
String filter = "*.xml";
public void mainMenu() {
keyboard = new Scanner(System.in);
choice = ChooseOption();
FileDialog loadDialog = openFileDialog("Choose file", filter);
useInfo(loadDialog);
}
public int ChooseOption() {
System.out.println("Make your choice: \n"
+ "0) option A \n"
+ "1) option B");
try {
choice = keyboard.nextInt();
} catch(Exception e) {
System.out.println("Invalid input, try again.\n");
ChooseOption();
}
return choice;
}
public FileDialog openFileDialog(String title, String filter) {
System.out.println("Which file you want to use? \n");
FileDialog loadDialog = new FileDialog(new Frame(), title , FileDialog.LOAD);
loadDialog.setFile(filter);
//loadDialog.pack();
loadDialog.setVisible(true);
return loadDialog;
}
public void useInfo(FileDialog loadDialog) {
if( loadDialog == null || loadDialog.getFile() == null ) {
useDefaultFile();
doSomthing();
} else {
doSomthingElse();
}
}
}
【问题讨论】:
-
它根本不显示,代码看起来像在无限循环中。但它不会崩溃
-
就显示对话框而言似乎工作正常
-
发布完整课程,以便人们尝试并快速发现问题。
-
@melc 但它没有显示,很奇怪。
-
应该有框架,可能在其他窗口后面。
标签: java console user-input filedialog