在JavaFX中打印的解决方法

时间:2013-07-26 00:34:22

标签: printing jframe javafx

好的,所以我实际上已经在JavaFX中完成了我的程序,一切都运行得很顺利,但我有两份报告需要能够打印,你不知道吗? JavaFX不支持打印!

我一直试图通过制作一个从JavaFX导入所有数据的JFrame来解决这个问题,但它不会显示JFrame并给我以下错误:

2013-07-25 16:58:05.334 java [2150:707] [JRSAppKitAWT markAppIsDaemon]:进程管理器已初始化:无法完全启用无头模式。

我认为这是因为同一个JRE实例无法同时运行FX并显示Swing JFrame?因为如果自己运行相同的代码将会工作(只是没有来自FX应用程序的数据显示在报告中)。

所以我的问题是,是否有一种解决方法不需要我将所有外汇代码重新写入Swing?正在使用的打印机是通用/纯文本点阵打印机,所以我试图将数据导入JFrame,因为这样可以很容易地打印整个文本框架。也许我的JFX报告生成器可以在新的JRE中打开JFrame?或者有没有办法让它在同一个JRE中工作?我需要将它无缝集成到现有系统中,以便用户可以从JFX GUI生成报告并自动打印而不是生成报告,然后转到另一个(Swing)GUI打印它。

帮助!

好的,所以我尝试了使用Java 8测试版的建议答案,但现在没有任何作用。我收到以下错误:

线程“main”中的异常java.lang.UnsupportedClassVersionError:com / javafx / main / Main:不支持的major.minor版本52.0     at java.lang.ClassLoader.defineClass1(Native Method)     at java.lang.ClassLoader.defineClass(ClassLoader.java:791)     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)     at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)     在java.net.URLClassLoader.access $ 100(URLClassLoader.java:71)     在java.net.URLClassLoader $ 1.run(URLClassLoader.java:361)     在java.net.URLClassLoader $ 1.run(URLClassLoader.java:355)     at java.security.AccessController.doPrivileged(Native Method)     在java.net.URLClassLoader.findClass(URLClassLoader.java:354)     at java.lang.ClassLoader.loadClass(ClassLoader.java:423)     at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:308)     at java.lang.ClassLoader.loadClass(ClassLoader.java:356)     在sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482) Java结果:1

1 个答案:

答案 0 :(得分:1)

使用Java 8,它支持printing for JavaFX

如果您想重用现有的基于Swing的报告代码,Java 8还支持在JavaFX应用程序中嵌入SwingNode

  

谢谢,但Java8的官方发布就像一年之后,不是吗?

Java 8 release date is currently 2014/03/18

  

不受支持的major.minor版本52.0

看起来您使用Java 8编译了应用程序,然后尝试在Java 7上运行它。

见相关: How to fix java.lang.UnsupportedClassVersionError: Unsupported major.minor version

  

这个问题没有办法吗?

没有我会推荐的。