亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在沒有 FXML 的情況下創建自定義復合控件?

如何在沒有 FXML 的情況下創建自定義復合控件?

元芳怎么了 2022-11-02 15:21:17
我想創建代表復合控件的類。這將是包含其他控件(如 TextFields 等)的 HBox。我知道可以像本教程中那樣使用 FXML 來完成,但我想不使用它。這是我解決這個問題的方法:復合控制類public class VInputText extends HBox {    private HBox hbox;    private FontAwesomeIconView icon;    private TextField textField;    private Label label;    public VInputText(double spacing) {        hbox = new HBox(spacing);        hbox.setAlignment(Pos.CENTER_LEFT);        hbox.setPrefSize(Control.USE_COMPUTED_SIZE, Control.USE_COMPUTED_SIZE);        icon = new FontAwesomeIconView();        icon.setGlyphName("TIMES");        icon.setSize("1.3em");        textField = new TextField();        label = new Label("<- my validated field");        hbox.getChildren().addAll(icon, textField, label);    }}FXML<AnchorPane prefHeight="300.0" prefWidth="400.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="pl.edu.utp.wtie.controllers.AppController">   <children>      <VBox fx:id="vBox" prefHeight="300.0" prefWidth="400.0" spacing="5.0" />   </children></AnchorPane>控制器public class AppController {    @FXML    private VBox vBox;    @FXML    void initialize() {        System.out.println("AppController.java");        VInputText input = new VInputText(5);        vBox.getChildren().add(input);    }}問題是應用程序正在編譯,但復合控件未顯示在場景中。如果需要剩余的代碼,那么我可以粘貼它。提前致謝。
查看完整描述

1 回答

?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

我正在粘貼某人解決的解決方案,但答案已被刪除。而不是創建HBox應該使用這個關鍵字:


public class VInputText extends HBox {


    private FontAwesomeIconView icon;

    private TextField textField;

    private Label label;


    public VInputText(double spacing) {


        this.setSpacing(spacing);

        this.setAlignment(Pos.CENTER_LEFT);

        this.setPrefSize(Control.USE_COMPUTED_SIZE, Control.USE_COMPUTED_SIZE);


        icon = new FontAwesomeIconView();

        icon.setGlyphName("TIMES");

        icon.setSize("1.3em");


        textField = new TextField();


        label = new Label("<- my validated field");


        this.getChildren().addAll(icon, textField, label);

    }

}


查看完整回答
反對 回復 2022-11-02
  • 1 回答
  • 0 關注
  • 98 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號