我有一个简单的摆动窗口,以便加载文件。
这显示在课程analyzedLoad
中,位于函数analyzedloads()
JFileChooser fc = new JFileChooser();
JFrame frame = new JFrame();
int returnVal = fc.showOpenDialog(frame);
frame.dispose();
if (returnVal == JFileChooser.APPROVE_OPTION) {
我在没有得到用户输入的情况下应用该功能,一切正常。但是我从这里获得了用户的输入:
int al= 0;
Scanner in = new Scanner(System.in);
System.out.println("for choose file, press 1; for save, press 2");
al= in.nextInt();
if (al== 1){
analyzedLoad.analyzedloads(); // A static function which open the swing window
窗口没有出现,进程继续运行,没有做任何事情。
感谢。
答案 0 :(得分:2)
Becaue“scanning operation可能阻止等待输入,”我怀疑你阻止了event dispatch thread。而是使用File Chooser来获取文件引用。
答案 1 :(得分:1)
尝试在控制台操作后添加第二个mywindow.setVisible(true)
。
答案 2 :(得分:1)
您可能想尝试将analyzeLoad
变量声明为final
,并执行以下操作:
SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run()
{
analyzedLoad.analyzedloads();
}
}
或者因为该方法是静态的:
SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run()
{
YourClass.analyzedloads();
}
}
话虽如此,没有更多代码我们只能推测。