我需要显示多,只读文本 - 它控制可用于吗? 它应该只dislay文字,就像一个标签确实,但是标签不支持多?
感谢您的任何提示:-)
我需要显示多,只读文本 - 它控制可用于吗? 它应该只dislay文字,就像一个标签确实,但是标签不支持多?
感谢您的任何提示:-)
您可以显示多行只读文本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
从真正的设置为false,看其之间的差异wrapText
开启和关闭。
如果文本有\ n(新行)内的字符,则标签将放置换到一个新行的地方使用换行符。
它当您设置FXML文件以及从视觉FXML编辑文本不工作。
如果你设置你想为你的一个最大宽度Label
,然后设置setWrapText
至true
,使其显示文本多:
Label label = new Label("Your long text here");
label.setMaxWidth(180);
label.setWrapText(true);
您还可以使用Text
出现在多,通过设置wrappingWidthProperty
根据您的需要。
Text text = new Text();
text.wrappingWidthProperty().set(345);
在这段代码中,我最大宽度设置为345.0
,那么当文本的大小达到超过345
像素将被换到下一行。
文本类也可以。 在这个答案一个很好的解释标签和文本的差异功能于JavaFX的基本使用,你就别想输入文本,否则标签是更好的。