Пробел между метками в JavaFX - PullRequest
0 голосов
/ 06 января 2019

Я хочу добавить много меток динамически, и между ними должно быть пространство.
Я умею хорошо рекламировать ярлыки, но между ними не бывает перерывов. Вот список вещей, которые я уже пробовал:

  1. Ищем вариант с css с -fx-display, установленным на inline, block или inline block, или добавляем интервал с css.

  2. Добавление символа новой строки \n или двух до или после или обоих до и после строки для метки.

  3. Изменение \n для включения других разрывов строк, таких как <br> из HTML

  4. Добавление отдельной метки только для текста новой строки.

  5. Добавление отдельного макета для каждого элемента метки.

  6. Изменение макета из BorderPane, FlowPane и VBox.

  7. Установка setWrapText () в true или false.

И да, в противном случае текст отображается правильно, я System.out.prints все и все выглядит нормально.

Что действительно происходит, когда я добавляю символы новой строки, так это то, что многие метки появляются рядом друг с другом, тогда у меня так много разрывов строк, прежде чем много меток появятся снова. Эти многочисленные метки всегда простираются до конца окна.

Screenshot

1 Ответ

0 голосов
/ 06 января 2019

Это может помочь:

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);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...