Когда я пытался использовать контейнер TabPane
в JavaFX, я заметил, что если я дам Tabs в TabPane
определенную ширину и другой элемент, например Button
точно такой жеширина, они отображаются на экране с разными размерами.
Вот пример: Как вы можете видеть на этом изображении, кнопка меньше ширины касания
Вот код 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 (где второй комментарий) Я установил точно такую же ширину. Это приводит к показанному изображению.
Мой вопрос:
Я сделал очевидную ошибку или это какая-то ошибка, или компилятор интерпретирует ширину для каждого узла несколько иначе?