[尝试从虚拟机(管理程序为kvm)中从Gradle运行swing项目时遇到一个奇怪的问题。
该代码在从主机OS进行的每次尝试中都运行良好,但是在来宾内部运行时,大多数时候都挂在jframe.pack()
方法中。我假设问题出在线程同步方面。
与大多数swing应用程序一样,试图发布代码以在此处显示...是不现实的。但是我可以在GitHub中指向它。>
否则,我不会以任何大的方式使用线程,基本上只是让swing自己进行管理。我还为来宾提供了足够的资源,并且在运行任何其他应用程序时没有任何问题。
我对这里正在进行的线程的细微差别并不十分熟悉,问题的根源可能是什么?我没有在创建自己的线程等方面做任何花哨的事情。我只是按照“通常”的方式设置ui,并让swing处理自己的线程。
主持人:
来宾:
一个简单的摆动应用程序设置过程:
class Runner(){
private Gui gui;
public runGui(){ //what is run to run the gui
gui = new Gui();
}
}
// partially setup with Intellij's form builder
class Gui(){
private JFrame mainFrame;
//many other member variables and functions
public void Gui(){
//general setup of GUI code. generation of elements, event binding, etc
this.mainFrame = new JFrame();
...
// pack and open
this.mainFrame.pack();
this.mainFrame.setVisible(true);
}
{
//intellij autogenerated form builder. Standard setup code.
$$$setupUI$$$();
}
}
当尝试从VM(管理程序为kvm)中从Gradle运行swing项目时,我遇到了一个奇怪的问题。在主机操作系统上的每次尝试中,该代码都能正常运行,但会挂在jframe.pack()...
我不十分了解正在进行的线程的细微差别,这可能是问题的根源吗?