0
這是記錄在某處嗎?它是標準的XML準則嗎?JavaFX fxml「fx:id」屬性的有效字符是什麼?
我能夠分配FX:在SceneBuilder ID = 「$表ABC」,但 「表> ABC」 給了一個錯誤。
這是記錄在某處嗎?它是標準的XML準則嗎?JavaFX fxml「fx:id」屬性的有效字符是什麼?
我能夠分配FX:在SceneBuilder ID = 「$表ABC」,但 「表> ABC」 給了一個錯誤。
在FXMLLoader的源代碼有一個方法processAttribute(...)
到「uumh」處理屬性,如fx:id
,fx:controller
等來驗證FX的代碼:id爲:
if (localName.equals(FX_ID_ATTRIBUTE))
{
// Verify that ID is a valid identifier
if (value.equals(NULL_KEYWORD))
{
throw constructLoadException("Invalid identifier.");
}
for (int i = 0, n = value.length(); i < n; i++)
{
if (!Character.isJavaIdentifierPart(value.charAt(i)))
{
throw constructLoadException("Invalid identifier.");
}
}
fx_id = value;
}
所以在fx:id
每個字符是與Character.isJavaIdentifierPart()
檢查。該
Character.isJavaIdentifierPart('$'); // returns true
Character.isJavaIdentifierPart('>'); // returns false
因此,使用>
字符將拋出一個LoadException
,而$
不會。
有可能不存在有效的外匯文檔:ID名稱,但至少閱讀Character.isJavaIdentifierPart()
的Javadoc會給你一些啓發。
而且由於它具有被映射到使用@FXML註釋的Java字段,這是有道理的,如果你想想看。 – Puce