在fxml中使用java,javafx – 在FXML中使用fx:id作为CSS id

似乎在F

XML中如果不指定ID(CSS),则默认使用fx:id值.我之前的理解是两个完全不相交,ID为CSS而且只有CSS. fx:控制器中@FXML绑定的id.

这可以通过一个小测试来证明 – 三个按钮,首先是ID,第二个是FX:ID,第三个是两种类型的ID.

使用Node.lookup(cssSelector)允许通过fx:id进行选择

@Override

public void start(Stage stage) throws Exception {

FXMLLoader loader = new FXMLLoader(getClass().getResource("/foo.fxml"));

Parent p = loader.load();

System.out.println(p.lookup("#cssid0")); // => Button[id=cssid0,styleClass=button]'Button'

System.out.println(p.lookup("#fxid1")); // => Button[id=fxid1,styleClass=button]'Button'

System.out.println(p.lookup("#fxid2")); // => null (if there is a CSS ID it takes precedent)

System.out.println(p.lookup("#cssid2")); // Button[id=cssid2,styleClass=button]'Button'

stage.setScene(new Scene(p,200,200));

stage.getScene().getStylesheets().add("/foo.css");

stage.show();

}

CSS也允许通过fx:ID进行选择

#cssid0 {

-fx-color: red;

}

#fxid1 {

-fx-color: green;

}

#cssid2 {

-fx-color: blue;

}

这个功能非常有用,因为我们只需要指定一个fx:id,它可以用于控制器,CSS和使用test-FX的单元测试.

是否可以使用这种方法,或者我是否对未记录的行为进行假设,这些行为可能会在以后的版本中发生变化?或者它是否记录在某个我遗漏的地方?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在FXML使用Bootstrap样式,你需要将Bootstrap库添加到你的JavaFX项目。以下是一些步骤: 1. 下载Bootstrap库(可以从官网下载或使用CDN)。 2. 将下载的Bootstrap库文件夹复制到你的JavaFX项目的src/main/resources目录下。 3. 在FXML文件导入Bootstrap的CSS文件。在FXML文件的顶部添加以下代码: ```xml <?import javafx.scene.layout.AnchorPane?> <?import javafx.scene.control.Button?> <?import javafx.scene.control.Label?> <?import javafx.scene.control.TextField?> <?import javafx.scene.text.Font?> <?import javafx.scene.text.Text?> <?import javafx.scene.web.WebView?> <?import javafx.scene.image.ImageView?> <?import javafx.scene.layout.BorderPane?> <?import javafx.geometry.Insets?> <?import javafx.scene.control.ToggleButton?> <?import javafx.scene.control.Tooltip?> <?import javafx.scene.control.MenuBar?> <?import javafx.scene.control.Menu?> <?import javafx.scene.control.MenuItem?> <?import javafx.scene.layout.VBox?> <?import javafx.scene.layout.HBox?> <?import javafx.scene.layout.Pane?> <?import org.kordamp.bootstrapfx.scene.layout.Panel?> <?import org.kordamp.bootstrapfx.scene.layout.PanelGrid?> ``` 4. 使用Bootstrap的样式在FXML文件创建控件。例如: ```xml <Panel styleClass="panel-primary"> <content> <Text text="Hello, Bootstrap!" /> </content> </Panel> ``` 在这个例子,我们使用了Panel控件,并为它设置了styleClass属性为"panel-primary",这样就可以使用Bootstrap的primary样式了。 这样就可以在FXML文件使用Bootstrap样式了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值