【问题标题】:JavaFX TabPane width and Button width don´t matchJavaFX TabPane 宽度和 Button 宽度不匹配
【发布时间】:2019-07-07 08:22:17
【问题描述】:

当我尝试在 JavaFX 中使用 TabPane 容器时,我注意到,如果我在 TabPane 中为 Tabs 提供特定宽度和另一个元素,例如Button 的宽度完全相同,但它们以不同的大小显示在屏幕上。

这里是一个例子:As you can see in this image, the Button is smaller than the width of the tap

这是此特定图像的代码 I:

package stackOverflow;

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.control.TabPane.TabClosingPolicy;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class TabPaneMystery extends Application {

public static void main(String[] args){

    launch(args);

}

@Override
public void start(Stage stage) throws Exception {

    StackPane stackPane = new StackPane();
    Scene scene = new Scene(stackPane, 600, 400);

    stage.setScene(scene);
    stage.show();

    TabPane tabPane = new TabPane();
    stackPane.getChildren().add(tabPane);
    Tab tab1 = new Tab();

    tabPane.setTabMaxWidth(160);        //The width of the tab is '160'
    tabPane.setTabMinWidth(160);
    tabPane.setTabClosingPolicy(TabClosingPolicy.UNAVAILABLE);

    tab1.setText("Tab");
    tabPane.getTabs().add(tab1);

    Button b = new Button();
    b.setText("Button");
    b.setPrefWidth(160);                //The width of the button is '160'
    b.setTranslateX(6);

    tab1.setContent(b);

}

}

在第 33 行和第 34 行 (第一个评论所在的位置) 我将 tapPane 的宽度设置为 160 并在第 42 行 (第二个评论所在的位置) em> 我设置了完全相同的宽度 这将产生显示的图像。

我的问题是:
我是否犯了一个明显的错误,或者它是某种错误,还是编译器对每个节点的宽度解释有些不同?

【问题讨论】:

    标签: button javafx tabs width pane


    【解决方案1】:

    我怀疑您在 Tab 中看到了一些填充。 Tab 的实际宽度为170。您可以通过将Tab 的宽度更改为150 来确认这一点;然后它将与Button 的大小完全相同:

    您也可以使用 CSS 来移除填充:

    tab1.setStyle("-fx-padding: 0");
    

    尽管如下所示,它不是完全匹配的,可能还有其他 CSS 属性需要研究。不过,希望这能让您更接近目标:

    【讨论】:

    • Button 也可能有一些填充。如果删除它会发生什么?
    • @Slaw - 从Button 中移除填充会降低高度,但不会降低宽度。很有趣。
    • 当您知道在 modena.css 文件中,默认情况下所有边都有填充时会更有趣:.button... {....; -fx-padding: 0.333333em 0.666667em 0.333333em 0.666667em; ...}
    猜你喜欢
    • 1970-01-01
    • 2018-04-03
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多