Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 菜单系统工作,但无法关闭_Java_Swing_Canvas_Jframe_Awt - Fatal编程技术网

Java 菜单系统工作,但无法关闭

Java 菜单系统工作,但无法关闭,java,swing,canvas,jframe,awt,Java,Swing,Canvas,Jframe,Awt,好的,我已经启动了我的菜单系统,并从JFrame开始工作。一切似乎都很好,直到我点击按钮开始画布。现在canvas做的是初始化一个JFrame,它扩展了canvas,所以我不能使用线程。一旦框架启动并运行,它将调用一个具有while true{}的方法,在此之后,我无法关闭框架。在使用静态voidmain运行canvas应用程序时,这从来都不是一个问题。如何解决新JFrame未关闭的问题 如何解决新JFrame未关闭的问题 不要阻止EDT事件调度线程-发生这种情况时GUI将“冻结”。不要创建无限

好的,我已经启动了我的菜单系统,并从JFrame开始工作。一切似乎都很好,直到我点击按钮开始画布。现在canvas做的是初始化一个JFrame,它扩展了canvas,所以我不能使用线程。一旦框架启动并运行,它将调用一个具有while true{}的方法,在此之后,我无法关闭框架。在使用静态voidmain运行canvas应用程序时,这从来都不是一个问题。如何解决新JFrame未关闭的问题

如何解决新JFrame未关闭的问题

不要阻止EDT事件调度线程-发生这种情况时GUI将“冻结”。不要创建无限循环,而是为长时间运行的任务实现SwingWorker。有关更多详细信息,请参阅

如何解决新JFrame未关闭的问题

不要阻止EDT事件调度线程-发生这种情况时GUI将“冻结”。不要创建无限循环,而是为长时间运行的任务实现SwingWorker。有关更多详细信息,请参阅。

1。在使用GUI应用程序时,这是一条经验法则,它始终保持UI在UI线程上工作,而非UI在非UI线程上工作

二,。其次,不要混淆秋千和AWT

三,。javagui中的main方法并不长久,在事件调度器线程EDT中调度工作后,main方法退出。现在,处理GUI完全由EDT负责

四,。因此,不要将非UI流程密集型工作与EDT混为一谈

使用EDT处理GUI

例如:

一,。在使用GUI应用程序时,这是一条经验法则,它始终保持UI在UI线程上工作,而非UI在非UI线程上工作

二,。其次,不要混淆秋千和AWT

三,。javagui中的main方法并不长久,在事件调度器线程EDT中调度工作后,main方法退出。现在,处理GUI完全由EDT负责

四,。因此,不要将非UI流程密集型工作与EDT混为一谈

使用EDT处理GUI

例如:


除非有很好的理由,否则不要混合使用Swing和AWT组件。为此,它可能需要一个JPanel而不是画布。为了将概率转化为更明确的东西,提供更多用例的细节。除非有很好的理由,否则不要混合使用Swing和AWT组件。为此,它可能需要一个JPanel而不是画布。为了将概率化为更明确的东西,提供更多用例的细节。
public static void main(String[] args){


     EventQueue.invokeLater(new Runnable(){

                myframe.setVisible(true);

       });


 }