我已将javafx.scene.canvas.Canvas类扩展为可调整大小。 是否可以在FXML中编写与此类似的内容?
<ResizableCanvas fx:id="..." ></ResizableCanvas >
如果我这样做,我会得到一个例外:
javafx.fxml.LoadException: ResizableCanvas is not a valid type.
at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2597)
at javafx.fxml.FXMLLoader.createElement(FXMLLoader.java:2774)
at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2704)
这意味着我只能在java代码中使用我的类吗?
在WPF中,可以在XAML代码中使用自定义类。我正在寻找类似的东西......
答案 0 :(得分:2)
在FXML代码中使用“自定义”类是完全可能的。所需要的只是该类在运行时位于类路径上,并且可以由FXML解析器解析。后者意味着您需要完全限定的类名,或者您需要在FXML前言中为您的类导入。
请注意,FXML与默认包不兼容,因此默认包中的类可能无法加载。无论如何,非常不推荐使用默认包。
通常情况下你会有:
package com.example ;
public class ResizableCanvas {
// ...
}
可以与
一起使用<?import com.example.ResizableCanvas ?>
<!-- other imports ... -->
<-- ... -->
<ResizableCanvas fx:id="..." />