关闭jfreechart swing窗口会关闭整个应用程序。

5
我已经将这个 Jfreechart Bar Demo与我的Swing应用程序集成。 我在一个按钮的操作执行方法中放置了以下代码,这段代码以前在Bar Demo类的主方法中。
final BarChart3DDemo3 demo = new BarChart3DDemo3("3D Bar Chart Demo 3");
        demo.pack();
        RefineryUtilities.centerFrameOnScreen(demo);
        demo.setVisible(true);

这是生成条形图表的代码。但是当关闭条形图表的窗口时,整个应用程序都会关闭。

我尝试插入demo.getDefaultCloseOperation(ApplicationFrame.DISPOSE_ON_CLOSE); 但它不起作用,虽然没有出现任何错误。

我还尝试在BarChart3DDemo3构造函数中插入此代码,但是它会报错,因为getDefaultCloseOperation()方法不接受int参数。

我不知道该怎么办?请帮忙解决。谢谢。


HIDE_ON_CLOSE 也没有成功。 - JavaBits
1
你的意思是 setDefaultCloseOperation(...DISPOSE...),对吗? - maerics
DISPOSE_ON_CLOSE和HIDE_ON_CLOSE在JFrame上都能正常工作,而ApplicationFrame则不响应。 - JavaBits
2个回答

12
请注意,ApplicationFrame会"监听窗口关闭事件,并响应通过关闭JVM来关闭应用程序"。它是为演示应用程序而设计的。相反,将您的ChartPanel放入JFrame中,如此处所示。

4
我已经移除了ApplicationFrame并用JFrame替换,现在它能够正常工作了。 - JavaBits

-1

改为

public class LineChart_AWT extends JFrame ,

而不是 public class LineChart_AWT extends ApplicationFrame,这样就可以正常工作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接