icepdf 核心使 JFrame 在后台保持打开状态
icepdfcore keeps JFrame opened in the background
我知道我的问题有点奇怪,但我目前正在开发一个 java swing 应用程序,它使用 icepdfcore
从另一个 jframe 中的文件选择器打开 pdf
这是我的代码:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
{
JFilechooser filedialog=new JFileChooser();
filedialog.showOpenDialog(frame);
File file=filedialog.getSelectedFile();
SwingController controller = new SwingController();
SwingViewBuilder factory = new SwingViewBuilder(controller);
JPanel viewerComponentPanel = factory.buildViewerPanel();
JFrame window = new JFrame("PDF Viewer");
window.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
window.getContentPane().add(viewerComponentPanel);
window.setVisible(true);
controller.openDocument(file.getAbsolutePath());
}
当我 select 使用 icepdfcore 正确显示文件时,但问题是当我关闭主框架时,它没有完全关闭,正如我在 netbeans 中看到的那样,它仍然 运行在后台,强制杀死它的唯一方法是单击红色方块
我给newframe添加了onclosing事件,问题依旧
window.addWindowListener(new java.awt.event.WindowAdapter()
{
public void windowClosed(java.awt.event.WindowEvent evt)
{
controller.closeDocument();
//controller.dispose();
controller.exit();
}
});
icepdfcore 以某种方式保持父框架锁定,到目前为止我还没有弄清楚。
如有任何帮助,我们将不胜感激。
我通过将 System.exit(0)
添加到 JFramewindowClosed
事件中解决了这个问题
这样,所有程序资源都被销毁,包括非守护进程运行 by icepdfcore
window.addWindowListener(new java.awt.event.WindowAdapter()
{
public void windowClosed(java.awt.event.WindowEvent evt)
{
System.exit(0);
}
});
但是,我仍然无法理解这种意外行为,因为我使用的是 4.3.3 版本,并且该错误已在 3.0 版本中修复
我知道我的问题有点奇怪,但我目前正在开发一个 java swing 应用程序,它使用 icepdfcore
从另一个 jframe 中的文件选择器打开 pdf这是我的代码:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
{
JFilechooser filedialog=new JFileChooser();
filedialog.showOpenDialog(frame);
File file=filedialog.getSelectedFile();
SwingController controller = new SwingController();
SwingViewBuilder factory = new SwingViewBuilder(controller);
JPanel viewerComponentPanel = factory.buildViewerPanel();
JFrame window = new JFrame("PDF Viewer");
window.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
window.getContentPane().add(viewerComponentPanel);
window.setVisible(true);
controller.openDocument(file.getAbsolutePath());
}
当我 select 使用 icepdfcore 正确显示文件时,但问题是当我关闭主框架时,它没有完全关闭,正如我在 netbeans 中看到的那样,它仍然 运行在后台,强制杀死它的唯一方法是单击红色方块
我给newframe添加了onclosing事件,问题依旧
window.addWindowListener(new java.awt.event.WindowAdapter()
{
public void windowClosed(java.awt.event.WindowEvent evt)
{
controller.closeDocument();
//controller.dispose();
controller.exit();
}
});
icepdfcore 以某种方式保持父框架锁定,到目前为止我还没有弄清楚。
如有任何帮助,我们将不胜感激。
我通过将 System.exit(0)
添加到 JFramewindowClosed
事件中解决了这个问题
这样,所有程序资源都被销毁,包括非守护进程运行 by icepdfcore
window.addWindowListener(new java.awt.event.WindowAdapter()
{
public void windowClosed(java.awt.event.WindowEvent evt)
{
System.exit(0);
}
});
但是,我仍然无法理解这种意外行为,因为我使用的是 4.3.3 版本,并且该错误已在 3.0 版本中修复