打开JFrame后,我可以确保我的应用程序继续运行吗?

时间:2015-08-26 11:50:04

标签: java swing jframe

我正在尝试打开最终将显示代码本身的值的JFrame,但我需要应用程序在打开JFrame后继续运行并将内容打印到控制台。目前,我的申请就停止了。

这是我的代码实现我的JFrame类:

public void start(){
    gameWindow window = new gameWindow();
    Scanner scanner = new Scanner(System.in);
    char[] letterSelect = new char[9];
    List <String> previousGuesses = new ArrayList<String>(); 
    wordMethods methods = new wordMethods();
    methods.randomSelect(letterSelect);
    while(true){

...等 一旦我创建了gameWindow对象'window',代码就会停止

这是我的gameWindow类:

public class gameWindow extends JFrame{
gameWindow(){
    super("Word Wheel");
    setSize(600,600);
    setResizable(false);
    setDefaultCloseOperation(HIDE_ON_CLOSE);
    setLayout(new FlowLayout());
}

public void paint(Graphics wheel){
    wheel.setColor(Color.BLACK);
    wheel.drawOval(100, 100, 200,200);
}

public static void main(String[] args){
    new gameWindow().setVisible(true);
    gameWindow w = new gameWindow();
}

我已经尝试将默认关闭操作更改为可用的不同选项,因为我觉得这是我问题的关键,但我无法看到如何进展。

任何指导都将不胜感激!

1 个答案:

答案 0 :(得分:0)

您的应用确实在继续运行。 GUI将由Event Dispatch Thread保持活动状态,但如果主方法结束,则一个线程将死亡。

您的第一段代码非常不清楚,您有一些随机方法start(),您似乎甚至无法将框架设置为可见。

gameWindow类中的主要方法(顺便说一句,名称应为GameWindow)会创建两个框架,其中一个框架将保持隐藏状态。

如果你想要好的答案,请提出一个好问题。目前,您没有显示所有相关代码,甚至没有显示您运行程序的方式。您是在运行gameWindow或其他类的主要方法吗?