我希望动态添加许多标签,并在它们之间留出空间。
我可以在标签上做广告,但是,每个标签之间都不会出现中断。这是我已经尝试过的事情的清单:
正在使用-fx-display
设置为内联或块或内联块的css寻找选项,或使用css添加间距。
在标签的字符串之前或之后或前后两个或在字符串之前和之后都添加一个换行符\n
。
更改\n
以包括其他换行符,例如HTML中的<br>
为换行符文本添加单独的标签。
为每个标签元素添加单独的布局。
从BorderPane,FlowPane和VBox更改布局。
将setWrapText()设置为true或false。
是的,否则该文本将正确显示,我已经System.out.printed了所有内容,一切看起来都很好。
当我添加换行符时,实际上发生的事情是很多标签彼此相邻出现,然后在很多标签再次出现之前我有很多换行符。这些标签总是延伸到窗口的末端。
答案 0 :(得分:0)
这可能有帮助:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.TilePane;
import javafx.stage.Stage;
public class FxTest extends Application {
private static int counter = 0;
@Override
public void start(Stage primaryStage)throws Exception{
TilePane main = new TilePane();
main.setPrefColumns(8);
main.setHgap(10); main.setVgap(10); //veritcal and horizontal space
Button add = new Button("Add");
add.setOnAction(e -> main.getChildren().add(new Label("Lable "+ counter ++)));
BorderPane root = new BorderPane(main);
root.setBottom(add);
Scene scene = new Scene(root,400,400);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(null);
}
}