0

我使用 Scene Builder 生成了一个 FXML 文件。我需要它包含一些西里尔文字。

当我使用 Scene Builder 编辑此文件时,我可以看到正常的西里尔字母(屏幕 1)

用这个 FXML 文件编译并运行我的程序后,我看不到西里尔字母,而是一些人工制品(屏幕 2)

但是,正如您在屏幕 3上看到的,它的 xml 文件编码是 UTF-8。此外,您可以在那里看到它以 ANSI 格式保存。

我尝试使用其他编辑器(默认 eclipse 和 sublime text 2)打开它,但它们也使用了错误的编码。(屏幕 4屏幕 5

起初,我尝试将其从 ansi 转换为 utf-8(使用 notepad++)。

之后 eclipse 和 sublime text 2 开始显示西里尔字母,因为它们必须是。

但。当我试图用它打开这个文件时,场景生成器给出了一个错误:

Error loading file 
C:\eclipse\workspace\pr\src\main\java\ru\i\ava\pr\test.fxml.
C:\eclipse\workspace\pr\src\main\java\ru\i\ava\pr\test.fxml:1: ParseError 
at [row,col]:[1,1]
Message: Content is not allowed in prolog.

java编译器给了我一个错误:

 июн 08, 2012 8:11:03 PM javafx.fxml.FXMLLoader logException
 SEVERE: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1]
 Message: Content is not allowed in prolog.
 /C:/eclipse/workspace/pr/target/classes/ru/i/ava/pr/test.fxml:1
 at javafx.fxml.FXMLLoader.load(Unknown Source)
 at javafx.fxml.FXMLLoader.load(Unknown Source)
 at javafx.fxml.FXMLLoader.load(Unknown Source)
 at javafx.fxml.FXMLLoader.load(Unknown Source)
 at javafx.fxml.FXMLLoader.load(Unknown Source)
 at javafx.fxml.FXMLLoader.load(Unknown Source)
 at ru.i.ava.pr.PrFX.start(PrFX.java:22)
 at com.sun.javafx.application.LauncherImpl$5.run(Unknown Source)
 at com.sun.javafx.application.PlatformImpl$4.run(Unknown Source)
 at com.sun.javafx.application.PlatformImpl$3.run(Unknown Source)
 at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
 at com.sun.glass.ui.win.WinApplication.access$100(Unknown Source)
 at com.sun.glass.ui.win.WinApplication$2$1.run(Unknown Source)
 at java.lang.Thread.run(Unknown Source)

 Exception in Application start method
 Exception in thread "main" java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source)
at com.sun.javafx.application.LauncherImpl.access$000(Unknown Source)
at com.sun.javafx.application.LauncherImpl$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
 Caused by: javafx.fxml.LoadException: javax.xml.stream.XMLStreamException: ParseError at    
 [row,col]:[1,1]
 Message: Content is not allowed in prolog.
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at ru.i.ava.pr.PrFX.start(PrFX.java:22)
at com.sun.javafx.application.LauncherImpl$5.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl$4.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl$3.run(Unknown Source)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.access$100(Unknown Source)
at com.sun.glass.ui.win.WinApplication$2$1.run(Unknown Source)
... 1 more
    Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1]
    Message: Content is not allowed in prolog.
at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(Unknown Source)
at javax.xml.stream.util.StreamReaderDelegate.next(Unknown Source)
... 14 more

因此,我已将其转换回 ANSI。

并且,在 ANSI 中拥有此文件,手动将其“人工”文本更改为西里尔字母。

现在我在运行程序时可以看到普通文本,但是当我通过 Scene Builder 打开这个固定文件时,

Scene Builder 向我展示了一些“人为的”文本(屏幕 7)

那么,我该如何解决这种情况?

4

1 回答 1

2

我刚刚发现新版本的 Scene Builder 没有这样的问题。

于 2012-06-09T07:07:43.400 回答