在JavaFX中,是否可以先显示Tab名称,然后显示图形?

问题描述 投票:2回答:1

我在JavaFX应用程序中有一个TabPane。我必须编写一个侦听器才能关闭选项卡,因此我从选项卡中删除了默认的关闭图标,并添加了自定义关闭图标。下面是代码:

Tab gTab = new Tab("GlobalData.json");
Hyperlink hlink = new Hyperlink();
Image image = new Image(FileTreeItem.class.getResourceAsStream("../images/close.png"));
hlink.setGraphic(new ImageView(image));
hlink.setFocusTraversable(false);
gTab.setGraphic(hlink);
hlink.setOnAction(new EventHandler<ActionEvent>() {
    @Override
    public void handle(ActionEvent event) {
        if (TabPaneUtil.getInstance().getSelectionModel().getSelectedItem().getText().endsWith("*")) {
            Response res = FXOptionPane.showConfirmDialog(new Main().getPrimaryStage(), "Would you like to save?", "Confirmation");
            if (res.equals(Response.YES))
                event.consume();
            else
                TabPaneUtil.getInstance().getTabs().remove(TabPaneUtil.getInstance().getSelectionModel().getSelectedItem());
        } else {
            TabPaneUtil.getInstance().getTabs().remove(TabPaneUtil.getInstance().getSelectionModel().getSelectedItem());
        }
    }
});
gTab.setContent(main1.globalDataView(ApplicationContext.getTreeView().getSelectionModel().getSelectedItem()));
TabPaneUtil.getInstance().getTabs().add(gTab);
TabPaneUtil.getInstance().getSelectionModel().select(gTab);

正在发生的事情是,我先获得关闭图标,然后获得选项卡名称。有什么办法可以让我先获取选项卡名称,然后再获取图形?

PS:我已经看到了一些解决方案,例如在Label中添加文本和旋转图形。我无法做到这一点,因为我必须在应用程序中进行很多代码更改,而且会变得非常混乱!任何帮助,将不胜感激。

java javafx
1个回答
6
投票

您可以使用外部CSS文件执行此操作:只需添加规则

.tab-label {
    -fx-content-display: right ;
}

如果需要,您只能使用它将其应用于特定的选项卡窗格

.my-special-tab-pane .tab-label {
    -fx-content-display: right ;
}

someTabPane.getStyleClass().add("my-special-tab-pane");
© www.soinside.com 2019 - 2024. All rights reserved.