上海网站推广专员需求,网站建设的功能有哪些方面,制作html5网站,做网站服装app当您想使用FXML时#xff0c;您将需要能够添加自己的组件。 这很容易#xff0c;您只需要添加一个import语句。 FXML文件中以大写字母开头的元素将被解释为实例#xff0c;如果它们是Java Bean#xff0c;则最重要#xff1a;如果它们具有无参数的标准构造函数#xff0c… 当您想使用FXML时您将需要能够添加自己的组件。 这很容易您只需要添加一个import语句。 FXML文件中以大写字母开头的元素将被解释为实例如果它们是Java Bean则最重要如果它们具有无参数的标准构造函数则一切都很好。 如果没有那就更复杂了。 您将需要为加载器提供一个Builder和一个BuilderFactory。 例如在FXExperience Tools中使用了一个不错的ColorPicker控件该控件需要将Color传递给它的构造函数。 因此在FXML中我们想编写如下代码 ?import com.fxexperience.javafx.scene.control.colorpicker.ColorPicker?!-- ... --ColorPicker fx:idcolorPicker idcolorPicker colorGREEN / 现在我们需要创建一个BuilderFactory和一个Builder import com.fxexperience.javafx.scene.control.colorpicker.ColorPicker;
import javafx.fxml.JavaFXBuilderFactory;
import javafx.scene.paint.Color;
import javafx.util.Builder;
import javafx.util.BuilderFactory;/**** author eppleton*/
public class ColorPickerBuilderFactory implements BuilderFactory {public static class ColorPickerBuilder implements BuilderColorPicker {private Color color Color.WHITE;private String idcolorPicker;public String getId() {return id;}public void setId(String id) {this.id id;}public Color getColor() {return color;}public void setColor(Color color) {this.color color;}Overridepublic ColorPicker build() {ColorPicker picker new ColorPicker(color);picker.setId(id);return picker;}}private JavaFXBuilderFactory defaultBuilderFactory new JavaFXBuilderFactory();Overridepublic Builder? getBuilder(Class? type) {return (type ColorPicker.class) ? new ColorPickerBuilder() : defaultBuilderFactory.getBuilder(type);}
} 最后在加载FXML时您需要将工厂传递给加载器 (Parent) FXMLLoader.load(TestTool.class.getResource(GradientEditorControl.fxml), null,new ColorPickerBuilderFactory()) 就是这样如果我也可以使SceneBuilder理解这一点那就太好了。 参考 Eppleton博客上的JCG合作伙伴 Toni Epple 使用BuilderFactory将自定义组件添加到FXML 。 翻译自: https://www.javacodegeeks.com/2012/04/fxml-custom-components-using.html