在tabpane右侧添加一个按钮

时间:2017-11-24 01:43:29

标签: java button javafx

我有一些带有一些标签的tabpane。我想在与标签相同的行上添加一个按钮(应该右对齐并与标签相对)。

我在想我可以添加按钮,如:(但这不起作用)

tabPane.getTabs().add(tab1,tab2,tab3,new Button("btn"))

请告诉我该怎么做(见下面我想要的图像示例)。

注意:当TABAREA的TAB1处于活动状态时,按钮应该是可见的。在TAB2和TAB3时,按钮应该被隐藏。致谢

1 个答案:

答案 0 :(得分:0)

使用javafx.scene.layout.AnchorPane,您可以将自定义页面和按钮分组到相同的布局

参考下面的代码,

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Tab;
import javafx.scene.control.TabPane;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;

public class JavaFXTest6 extends Application {

    @Override
    public void start(Stage primaryStage) {
        final AnchorPane root = new AnchorPane();
        final TabPane tabs = new TabPane();
        final Button addButton = new Button("Btn1");
        addButton.setPrefWidth(41);
        addButton.setPrefHeight(15);

        AnchorPane.setTopAnchor(tabs, 5.0);
        AnchorPane.setLeftAnchor(tabs, 5.0);
        AnchorPane.setRightAnchor(tabs, 5.0);
        AnchorPane.setTopAnchor(addButton, 10.0);
        AnchorPane.setRightAnchor(addButton, 10.0);
        tabs.setStyle("-fx-padding: 2 0 0 50;");

        Tab tab = new Tab("Tab 1");
        Tab tab1 = new Tab("Tab 2");
        Tab tab2 = new Tab("Tab 3");

        tabs.getTabs().add(tab);
        tabs.getTabs().add(tab1);
        tabs.getTabs().add(tab2);

        root.getChildren().addAll(tabs, addButton);

        final Scene scene = new Scene(root, 300, 200);
        primaryStage.setTitle("Tabs with button !");
        primaryStage.setScene(scene);
        primaryStage.show();

    }

    public static void main(String[] args) {
        launch(args);
    }
}
  

----------------- out put会像这样--------------------

enter image description here