当前位置: 首页 > 知识库问答 >
问题:

用于显示多行文本的控件?

桓瀚
2023-03-14

我需要显示一个多行的只读文本,哪个控件可以用来显示?它应该只显示文本,就像标签一样,但是标签不支持多行?

谢谢你的提示:-)

共有3个答案

聂宜
2023-03-14

您还可以根据需要设置wrappingWidthProperty,使用Text以多行显示。

Text text = new Text();
text.wrappingWidthProperty().set(345);

在这段代码中,我将最大宽度设置为345.0,因此当文本的大小超过345时,像素将被包装到下一行。

东郭昌胤
2023-03-14

如果为标签设置了所需的最大宽度,则将setWrapText设置为true,以便显示文本多行:

Label label = new Label("Your long text here");
label.setMaxWidth(180);
label.setWrapText(true);
秋和雅
2023-03-14

您可以在标签中显示多行只读文本。

如果文本中有\n(换行符)字符,则标签将在换行符所在的位置换行。

如果标签的wrapText设置为true,并且没有足够的空间显示一行文本,则标签会将文本换行。

如果您想要不同样式的文本,那么,如果使用JavaFX2,请将多个标签放置在FlowPane中;如果使用Java8,请将标签放置在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");
}

尝试运行上述程序并调整窗口大小,以查看标签文本中的新行值以及标签上的wrapText属性的效果。将wrapText设置从true更改为false,以查看打开和关闭wrapText之间的区别。

 类似资料:
  • 请问在Vue3+Cesium上如何根据后端返回的数据,在地图上面显示图片并在图片的上方或者旁边显示后台返回的数据,类似于这样的

  • 因此,假设我有一个非常长的行,我想在中显示。我怎么做? 目前,较长的行如下所示: 当文本几乎达到我的的宽度时,如何使它出现换行符? 我不确定这里是否需要任何代码来回答这个问题,但仍然: 我的框架属性: 最后我使用了。

  • 问题背景: 显示一段文本,如果文本超过十行显示展开,收起按钮,按钮占一整行。文本有换行符。 问题:怎么计算文本实际占多少行。 尝试:使用z-index= -1先显示文本,计算文本高度。大于一个固定高度高度来判断。是否超过十行。 疑问:

  • 问题内容: DataGridView控件是否可以在单元格中显示多行文本? 我正在使用Visual Studio 2005和C#。 问题答案: 您应该将column的属性设置为。之后,单元格中的文本将正确显示。 示例(一栏): (= 在Windows中)

  • 显示文本 使用一个 Text 对象 (PIXI.Text)在舞台上展示文本。简单来说,你可以这样使用它: let message = new Text("Hello Pixi!"); app.stage.addChild(message); 这将会在画布上展示文本“Hello, Pixi”。Pixi的文本对象继承自Sprite类,所以它包含了所有相同的属性,像x, y, width, height

  • 我正在尝试编写一些相当基本的代码,但多年来没有接触过JavaScript,我真的不确定最好的方法是什么。 目标:有一个42个竞技场部分数字的下拉列表,当选择这些数字时,将根据该数字显示“红色”或“黑色”。为了提供过多信息,部分编号是: 黑色:103, 105, 107, 111, 113, 115, 119, 121, 123, 127, 129, 131, 201, 203, 205, 207,