Ответ 1
Вы можете отображать многострочный текст только для чтения в Label.
Если в тексте есть символы \n
(новая строка), тогда метка будет переноситься на новую строку везде, где символ новой строки.
Если метка имеет wrapText, значение true и недостаточно места для отображения одной строки текста, тогда метка будет заверните текст в новую строку.
Если вам нужен текст в разных стилях, то, если вы используете JavaFX 2, поместите несколько ярлыков в FlowPane
или, если вы используя Java 8+, поместите метки в компонент TextFlow
.
Производится по следующему коду:
import javafx.scene.Scene;
import javafx.application.Application;
import javafx.scene.control.Label;
import javafx.scene.image.*;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class LoveMeNot extends Application {
public static void main(String[] args) throws Exception { launch(args); }
@Override public void start(final Stage stage) throws Exception {
Label label = new Label(WORDS);
label.setWrapText(true);
label.setStyle("-fx-font-family: \"Comic Sans MS\"; -fx-font-size: 20; -fx-text-fill: darkred;");
ImageView image = new ImageView(IMAGE);
image.setOpacity(0.3);
StackPane layout = new StackPane();
layout.setStyle("-fx-background-color: mistyrose; -fx-padding: 10;");
layout.getChildren().setAll(image, label);
stage.setTitle("Love Me Not");
stage.setScene(new Scene(layout));
stage.show();
}
// creates a triangle.
private static final String WORDS =
"Love not me for comely grace,\n" +
"For my pleasing eye or face,\n" +
"Nor for any outward part,\n" +
"No, nor for my constant heart,\n" +
"For these may fail, or turn to ill.\n" +
"So thou and I must sever.\n" +
"Keep therefore a true woman’s eye,\n" +
"And love me still, but know not why,\n" +
"So hast thou the same reason still\n" +
"To doat upon me ever.";
private static final Image IMAGE =
new Image("http://icons.iconarchive.com/icons/artdesigner/gentle-romantic/256/rose-icon.png");
}
Попробуйте запустить указанную выше программу и измените ее размер, чтобы увидеть эффект значений \n
новых строк в тексте меток, а также свойство wrapText на ярлыке. Измените параметр wrapText с true на false, чтобы увидеть разницу между включением и выключением wrapText.