我尝试拉伸高度和宽度,但只有宽度可以水平显示文字,而不是垂直显示。
以下是我的尝试。
Label label5 = new Label("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee");
HBox hbox5 = new HBox();
label5.setMinHeight(Region.USE_COMPUTED_SIZE);
hbox5.getChildren().add(label5);
hbox5.setAlignment(Pos.TOP_CENTER);
hbox5.setMinHeight(Region.USE_COMPUTED_SIZE);
但似乎不起作用。
如果我错过了什么,请告诉我谢谢!
答案 0 :(得分:1)
你可以wrapText(true)
和rotate(90.0)
Label
而不用担心其他人吗?
Label l = new Label("some long text goes here - ");
l.setWrapText(true);
l.setRotate(90.0);
答案 1 :(得分:0)
关键是确保使用Monospaced
font
。
代码版本:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.scene.text.Font;
import javafx.stage.Stage;
/**
*
* @author blj0011
*/
public class JavaFXApplication42 extends Application {
@Override
public void start(Stage primaryStage) {
StackPane root = new StackPane();
Label label = new Label("Hello World");
label.setFont(Font.font("Monospaced"));
label.setWrapText(true);
label.setMinWidth(1);
label.setPrefWidth(1);
label.setMaxWidth(1);
root.getChildren().add(label);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
}
FXML版本:
?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.Pane?>
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.141" xmlns:fx="http://javafx.com/fxml/1">
<children>
<Label layoutX="296.0" layoutY="81.0" prefHeight="198.0" prefWidth="0.0" text="HELLO WORLD" wrapText="true" />
</children>
</Pane>