Метка оканчивается на '' ... "в javafx 1.0 - PullRequest
0 голосов
/ 11 марта 2019

Я поместил строку в переменную и использовал ее как текст в метке.Это работает для более короткого текста, но мой текст состоит из нескольких предложений, поэтому он заканчивается на ... вместо окончания моей строки.Я работаю с JavaFX 1.0.Кто-нибудь знает, как я могу это исправить?

Редактировать: Это код, который я написал.Я поместил переменную HandleidingDobbelsteen в другой файл.

import javafx.scene.text.Text;
import javafx.scene.text.Font;
import javafx.scene.shape.Rectangle;
import javafx.scene.paint.Color;
import javafx.scene.control.Label;

package var DobbelsteenHandleiding = Label {
    text: "Hier komt te staan wat de uitkomst van de dobbelsteen betekent."
    translateX: 830
    translateY: 245
    width: 140
    textWrap: true;
}

package var HandleidingDobbelsteen = Group {
    content:[
        DobbelsteenHandleiding,
        Rectangle {
            x: 825, y: 220
            width: 150, height: 120
            fill: null
            stroke: Color.BLACK
            strokeWidth: 1.3
        },
        Rectangle {
            x: 825, y: 220
            width: 150, height: 20
            fill: Color.BLACK
        },
        Text {
            font : Font {size: 18}
            x: 845, y: 235
            content: "De regels"
            fill: Color.WHITE
        },
    ]
}

1 Ответ

0 голосов
/ 12 марта 2019

Я предполагаю, что ваш инструктор ошибся в версии JavaFX они используют. Если они верны, эти инструкции могут не сработать для вас (поскольку я не знаком с Java на парах) ...

Вероятная причина вашей проблемы в том, что String, используемый для установки Label textProperty, длиннее, чем Label может отображать. Не видя ваш реальный код, у меня есть пара предложений:

Прежде всего, убедитесь, что ваш Label переносит его текст:

label.setWrapText(true);

Во-вторых, вы должны убедиться, что Label обернут в контейнер макета, который может обрабатывать растущий узел (это не всегда необходимо, но рекомендуется). Моя рекомендация VBox:

VBox vBox = new VBox(label);

Опять же, здесь есть некоторое предположение о версии JavaFX, которую вы на самом деле используете, но вы можете попробовать этот простой пример, чтобы увидеть, работает ли он для вас:

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class Test extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {

        // Simple interface
        VBox vBox = new VBox(5);
        vBox.setPadding(new Insets(10));
        vBox.setAlignment(Pos.CENTER);

        Label label = new Label();

        // Let's add some very long text to our Label
        label.setText("This is long text. It doesn't mean much because I am just writing things to make it long. Yes, I am that clever. Don't you just love this? Neither do I!");

        // Make sure the Label is setup to wrap text when it reaches the end of its boundaries
        label.setWrapText(true);

        // Add the Label to our VBox
        vBox.getChildren().add(label);

        // Show the Stage
        primaryStage.setWidth(300);
        primaryStage.setHeight(300);
        primaryStage.setScene(new Scene(vBox));
        primaryStage.show();
    }
}

Результат:

screenshot 1


Чтобы подтвердить, что label.setWrapText(true); на самом деле имеет значение, вот результат приведенного выше кода без этой строки, вместе с elipses ("..."), которые вы испытываете:

screenshot 2

...