我想得到一个分隔符,它用母亲组件的大小改变他的大小。 在我的例子中,我有一个JavaFX Popup,在那里我添加了一个VBox。对于这个VBox,我添加了一个HBox。这款HBox有一个Label,一个Speparator和一个Button。 现在我想让按钮位于右端,标签位于HBox的左端。我想我必须在这些组件之间使用分隔符来获取空间。
我该如何处理......
我做了这样的事情,但它不起作用。
// Box for the Headline
HBox headLine = new HBox();
headLine.setPadding(new Insets(5, 5, 5, 5));
// Label with the HeadLine Description in
final Label heading = new Label(headLineText);
heading.getStyleClass().addAll("popup-label-name");
// Close Button
close = new Button("X");
close.setVisible(false);
closeButtonHandler();
// Creates an invisble Separator1
Separator sep = new Separator(Orientation.HORIZONTAL);
sep.setVisible(false);
sep.widthProperty().add(m_container.widthProperty().get());
close.getStyleClass().addAll("popup-button", "popup-button-color");
// Adds to the Headline the Data
headLine.getChildren().addAll(heading, sep, close);
变量m_container是VBox!我该怎么处理呢?
感谢您的帮助:)
答案 0 :(得分:0)
最简单的方法(如果不使用像AnchorPane这样的不同容器)是插入一个不可见但可扩展的“空间”对象:
void testLabelSpace(HBox box) {
Text first = new Text("first");
Text second = new Text("second");
Node space = new HBox();
HBox.setHgrow(space, Priority.ALWAYS);
box.getChildren().addAll(first, space, second);
}
答案 1 :(得分:0)
如果我正确理解了这个问题,你只需要在标签和按钮之间留出空白。告诉Label
始终水平增长,并设置其最大宽度以允许它增长到任何大小:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.stage.Stage;
public class HBoxExample extends Application {
@Override
public void start(Stage primaryStage) {
HBox hbox = new HBox();
Label label = new Label("Label");
Button button = new Button("Button");
HBox.setHgrow(label, Priority.ALWAYS);
label.setMaxWidth(Double.MAX_VALUE);
hbox.getChildren().addAll(label, button);
primaryStage.setScene(new Scene(hbox, 350, 75));
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}