Java FileDialog不';从控制台获取输入后不显示
当我想在从控制台获得一些输入后打开文件对话框时,它会失败。 请参阅下面的代码。 当我第一次调用Java FileDialog不';从控制台获取输入后不显示,java,console,user-input,filedialog,Java,Console,User Input,Filedialog,当我想在从控制台获得一些输入后打开文件对话框时,它会失败。 请参阅下面的代码。 当我第一次调用openFileDialog然后选择option时,它工作正常。 有人知道这是怎么可能的吗 public class SomeClass { int choice = 2; Scanner keyboard; String filter = "*.xml"; public void mainMenu() { keyboard = new Scanner(System.in);
openFileDialog
然后选择option
时,它工作正常。
有人知道这是怎么可能的吗
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();
}
}
}
下面的代码使用jdk6工作
import java.awt.FileDialog;
import java.awt.Frame;
import java.util.Scanner;
public class Dialog {
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.setModal(true);
//loadDialog.pack();
loadDialog.setVisible(true);
return loadDialog;
}
public void useInfo(FileDialog loadDialog) {
if (loadDialog == null || loadDialog.getFile() == null) {
System.out.println("useDefaultFile();");
System.out.println("doSomthing();");
} else {
System.out.println("doSomthingElse();");
}
}
public static void main(String[] args) {
Dialog d = new Dialog();
d.mainMenu();
}
}
当显示对话框时,它很可能位于其他活动窗口后面。文件对话框显示为
帧
,但它可能位于其他活动窗口后面。
它根本不显示,代码看起来像是在一个无限循环中。但是crashit在显示dialogPost full类时似乎不起作用,这样人们就可以尝试并快速看到问题。@melc但它没有显示,这已经够奇怪了。应该有框架,可能在其他窗口后面。