JavaFX 布局 TabPane&Tab

TabPane&Tab

TabPane tabPane = new TabPane();

tabPane.setPrefWidth(200);
tabPane.setPrefHeight(200);
tabPane.setStyle("-fx-background-color: #0ac");

Tab tab1 = new Tab("Tab1");
Tab tab2 = new Tab("Tab2");
Tab tab3 = new Tab("Tab3");

tab1.setGraphic(new ImageView("image\\stash.png"));
//关闭监听
tab1.setOnClosed(new EventHandler<Event>() {
    @Override
    public void handle(Event event) {
        System.out.println("tab1.setOnClosed");
    }
});

tab1.setOnCloseRequest(new EventHandler<Event>() {
    @Override
    public void handle(Event event) {
        //阻止事件, setOnClosed 不会执行
        event.consume();
        System.out.println("tab1.setOnCloseRequest");
    }
});
tab1.setOnSelectionChanged(new EventHandler<Event>() {
    @Override
    public void handle(Event event) {
        System.out.println("tab1.setOnSelectionChanged");
    }
});

//不允许关闭
tab2.setClosable(false);

tab1.setContent(new Label("Tab1"));
tab2.setContent(new Label("Tab2"));
tab3.setContent(new Label("Tab3"));

//默认选中
tabPane.getSelectionModel().select(tab2);
//设置关闭按钮显示模式
tabPane.setTabClosingPolicy(TabClosingPolicy.ALL_TABS);
//设置Tab方位
tabPane.setSide(Side.LEFT);
//旋转图标
tabPane.setRotateGraphic(true);
tabPane.getTabs().addAll(tab1, tab2, tab3);

//监听Tab切换
tabPane.getSelectionModel().selectedIndexProperty().addListener(new ChangeListener<Number>() {
    @Override
    public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
        System.out.println("tabPane.selectedIndexProperty()");
    }
});

//监听Tab切换
tabPane.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<Tab>() {
    @Override
    public void changed(ObservableValue<? extends Tab> observable, Tab oldValue, Tab newValue) {
        System.out.println("tabPane.selectedItemProperty()");
    }
});
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值