gpt4 book ai didi

JavaFX:拉伸(stretch)选项卡以适应父 TabPane

转载 作者:行者123 更新时间:2023-11-30 10:20:13 27 4
gpt4 key购买 nike

我使用以下代码使 TabPane 的组合标签宽度适合 TabPane 的宽度。

private void initTabPane() {

// Populate Tabs
List<Tab> tabs = _tabPane.getTabs();
tabs.add(new Tab("Metadator", _metadatorView));
tabs.add(new Tab("Translator", _translatorView));
tabs.add(new Tab("ESPN"));

// Stretch to fit width
_tabPane.tabMinWidthProperty().bind(_tabPane.widthProperty()
.divide(_tabPane.getTabs().size()) );
}

我试图删除 tab-down-button View ,该 View 在选项卡相对于TABPANE的宽度时显示了一定的宽度。您可以在下图的右上角看到:

enter image description here

我尝试使用其类 .control-buttons-tab, .container, .tab-down-button, .arrow 的 padding/margin/bg-color 属性,但没有任何效果。

Is there any way to remove it, or offset it far away that it isn't interfering with the last tab?

最佳答案

这是在正确的轨道上,但你必须改变它一些。您基本上需要将 Tabs' 的宽度设置为特定长度。然后,您需要将 TabPane 的 宽度设置为加在一起的所有 Tabs 的长度。最后,添加一点缓冲区,使下拉菜单不显示。 -> 查看代码中的 +55

import java.util.List;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Tab;
import javafx.scene.control.TabPane;
import javafx.scene.layout.BorderPane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

public class Main extends Application
{

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

@Override
public void start(Stage primaryStage)
{
primaryStage.setTitle("Tabs");
Group root = new Group();

TabPane tabPane = new TabPane();

BorderPane borderPane = new BorderPane();
List<Tab> tabs = tabPane.getTabs();
tabs.add(new Tab("Metadator"));
tabs.add(new Tab("Translator"));
tabs.add(new Tab("ESPN"));

tabPane.tabMinWidthProperty().set(100);//set the tabPane's tabs min and max widths to be the same.
tabPane.tabMaxWidthProperty().set(100);//set the tabPane's tabs min and max widths to be the same.
System.out.println(tabPane.tabMinWidthProperty().get());
tabPane.setMinWidth((100 * tabPane.getTabs().size()) + 55);//set the tabPane's minWidth and maybe max width to the tabs combined width + a padding value
tabPane.setPrefWidth((100 * tabPane.getTabs().size()) + 55);//set the tabPane's minWidth and maybe max width to the tabs combined width + a padding value
borderPane.setCenter(tabPane);
root.getChildren().add(borderPane);

Scene scene = new Scene(root, (100 * tabPane.getTabs().size()) + 55, 250, Color.WHITE);//You might need to set the scene's with also
primaryStage.setScene(scene);
primaryStage.show();
}

}

enter image description here

关于JavaFX:拉伸(stretch)选项卡以适应父 TabPane,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48328328/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com