Я пытаюсь создать TreeView
, где каждый TreeCell
представляет оператор в программе. Вызвав setGraphics
, я хочу заменить ячейку по умолчанию настроенной Node
, как показано на следующем рисунке.
Я использую VBox
, так как все дети расположены вертикально. Верхний колонтитул и Нижний колонтитул представляют собой 2 крошечные области, зарезервированные для операций перетаскивания. например Я могу перетащить новый оператор перед текущим, наведя курсор на его заголовок.
Я хочу использовать Label
для верхнего и нижнего колонтитула, и я хочу ограничить их высоту до 2 пикселей, поэтому я попытался:
public VBox getTestContainer() {
VBox vbox = new VBox();
Label header = new Label();
header.setPrefHeight(2);
header.setPrefWidth(200);
... ... ...
vbox.getChildren().add(header, ..., footer);
}
public void start(Stage stage) throws Exception {
Group root = new Group();
root.getChildren().add(getTestBlock());
stage.setTitle("Test");
stage.setScene(new Scene(root, 400, 300));
stage.show();
}
Чтобы убедиться, что размер VBox
не изменен другими панелями макета, я просто поместил его в Group
.
setPrefWidth
работает, он дает мне ширину 200 пикселей Label
и VBox
, но setPrefHeight
- нет. Как видите, высота заголовка намного больше 2 пикселей.
У меня вопрос, как правильно установить высоту Label
?