标签不显示Java FX中的完整内容

时间:2014-04-07 03:02:46

标签: javafx javafx-2 label javafx-8

在Java FX中开发应用程序。在这个特定的窗口中,我使用了BorderPane。当按下按钮时,下面提供的代码应该显示在BorderPane的Center区域中。

private VBox tutor() {

    VBox vb1 = new VBox();
    vb1.setPadding(new Insets (80, 50, 50, 160));
    vb1.setSpacing(30);

    VBox vb2 = new VBox();
    vb2.setPadding(new Insets (30, 30, 30, 30));
    vb2.setSpacing(10);

    Label lb1 = new Label("New Tutor...? Sign Up here by providing the\n"
            + "necessary details in the next page. Press the 'Sign Up'\n"
            + "button to proceed.");
    lb1.setFont(Font.font("Calibri", FontWeight.BOLD, 17));
    lb1.setTextFill(Color.BLACK);

    Button btnacnt = new Button("Sign Up");
    btnacnt.setFont(Font.font("Calibri", FontWeight.THIN, 18));
    btnacnt.setStyle(" -fx-base: #333333;");
    btnacnt.setTextFill(Color.WHITE);

    vb2.getChildren().addAll(lb1, btnacnt);

    VBox vb3 = new VBox();
    vb3.setPadding(new Insets (30, 30, 30, 30));
    vb3.setSpacing(10);

    Label lb2 = new Label("Existing Tutor...? Sign In here by providing the\n"
            + "username and password in the next page. Press the 'Sign In'\n"
            + "button to proceed.");
    lb2.setFont(Font.font("Calibri", FontWeight.BOLD, 17));
    lb2.setTextFill(Color.BLACK);

    Button btnsignin = new Button("Sign In");
    btnsignin.setFont(Font.font("Calibri", FontWeight.THIN, 18));
    btnsignin.setStyle(" -fx-base: #333333;");
    btnsignin.setTextFill(Color.WHITE);

    btnsignin.setOnAction(new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent e) {
            setCenter(tutorSignin());
        }
    });

    vb3.getChildren().addAll(lb2, btnsignin);

    vb1.getChildren().addAll(vb2, vb3);
    return vb1;

}

代码正在运行。按下按钮时,代码中的详细信息将显示在中心区域。但问题是标签内容都没有完全显示。我将提供一个屏幕截图。

enter image description here

那么为什么Label的内容没有完全显示?如何让它完全可见?

1 个答案:

答案 0 :(得分:2)

这是因为没有足够的空间来显示所有文本,VBox会将其子项调整为首选大小,标签只是隐藏其溢出的文本。要查看已使用的布局边框(应用其填充),请尝试:

vb1.setStyle("-fx-border-color:red");
vb2.setStyle("-fx-border-color:green");
vb3.setStyle("-fx-border-color:blue");
lb1.setStyle("-fx-border-color:yellow");
lb2.setStyle("-fx-border-color:aqua");

依旧......

作为解决方案:
1)放大窗口大小或减少填充/插入 2)强制标签通过给出最小高度lb1.setMinHeight(70);来显示所有文本。