2013-07-26 102 views
0

好的,所以我已經用JavaFX完成了我的程序,並且一切都很好,但是我有兩個需要打印的報告,您不知道嗎? JavaFX不支持打印!在JavaFX中打印的解決方法

我一直在試圖通過使從JavaFX的導入所有數據的JFrame的方式來解決這個問題,但它一直不顯示的JFrame,並給了我以下錯誤:

2013年7月25日16:58:05.334 java [2150:707] [JRSAppKitAWT markAppIsDaemon]:進程管理器已經初始化:無法完全啓用無頭模式。

我認爲會發生這種情況,因爲JRE的相同實例無法運行FX並同時顯示Swing JFrame?因爲如果自己運行相同的代碼(只是沒有來自FX應用程序的數據顯示在報告中),它們將起作用。

所以我的問題是,是否有一種解決方法,不需要我將所有FX代碼重寫到Swing?正在使用的打印機是一個通用/純文本點陣打印機,所以我試圖將數據導入到JFrame中,因爲這樣打印整個文本框就很容易了。也許我的JFX報告生成器可以在新的JRE中打開JFrame?還是有辦法讓它在同一個JRE中工作? I do需要將其無縫集成到現有系統中,以便用戶可以從JFX GUI生成報告並自動打印而不是生成報告,然後轉到另一個(Swing)GUI進行打印。

幫助!

好的,所以我嘗試了使用Java 8 beta版的建議答案,但現在沒有任何工作。我收到以下錯誤:在線程 「主要」 因爲java.lang.UnsupportedClassVersionError

例外:COM/JavaFX的/主/主:在java.lang.ClassLoader.defineClass1(本機方法)不支持MAJOR.MINOR版本52.0 在需要java.lang.ClassLoader.defineClass(ClassLoader.java:791) 在java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 在java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 在java的.net.URLClassLoader.access $ 100(URLClassLoader.java:71) at java.net.URLClassLoader $ 1.run(URLClassLoader.java:361) at java.net.URLClassLoader $ 1.run(URLClassLoader.java:355) at java.security.AccessControll er.doPrivileged(本地方法) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:423) at sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.java:308) 在java.lang.ClassLoader.loadClass(ClassLoader.java:356) 在sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482) Java結果:1

回答

1

使用Java 8它支持printing for JavaFX

如果您希望重新使用您現有的基於Swing的報告代碼,Java 8還支持在JavaFX應用中嵌入SwingNode

Thanks, but the official release of Java8 is like a year away, isn't it?

Java 8 release date is currently 2014/03/18

Unsupported major.minor version 52.0

看起來像你用Java 8編譯應用程序,然後試圖在Java 7上運行它。

見相關: How to fix java.lang.UnsupportedClassVersionError: Unsupported major.minor version

Is there no other way around this problem?

沒有,我會推薦。

+0

謝謝,但Java8的官方發佈就像是一年之遙,不是嗎?這個問題沒有其他辦法嗎? – John

+0

我編輯了我的答案以解決您的其他問題。 – jewelsea