【发布时间】: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