使用Css在JavaFX中为TextField创建形状

时间:2016-04-21 08:42:45

标签: css javafx javafx-2 javafx-8 javafx-3d

我需要使用CSS

TextField创建此形状

Sample Pic

但我只设法创建以下用户界面:

My Pic

如何创建Sample Pic等文本字段?

1 个答案:

答案 0 :(得分:4)

使用Region-fx-shape属性指定SVG path

.login-box {
    -fx-spacing: -15;
    -fx-fill-height: false;
}

.login-box > .button {
    -fx-shape: "M0,1 L1,0 L2,1 L1,2 Z";
    -fx-min-width: 60;
    -fx-max-width: 60;
    -fx-min-height: 60;
    -fx-max-height: 60;
}

.login-box > .textfield-container {
    -fx-spacing: 8;
}

.login-box > .textfield-container > .text-field {
    -fx-shape: "M200,0 H0 V30 H170 Z";
}

.login-box > .textfield-container > .password-field {
    -fx-shape: "M170,0 H0 V30 H200 Z";
}

.login-box > .textfield-container > .text-field, .login-box > .textfield-container > .password-field {
    -fx-min-width: 200;
    -fx-max-width: 200;
    -fx-min-height: 30;
    -fx-max-height: 30;
    -fx-padding: 4 30 4 8;
}

两个SVG路径都从右上角开始(M200,0 / M170,0)然后绘制到左上角(H0),继续向下绘制到底部 - 左角(V30)然后绘制到右下角(V170 / V200),最后关闭路径(Z)。

查看结构:

login-box                                (HBox)
    |---- textfield-container            (VBox)
    |         |--- text-field            (TextField)
    |         |--- password-field        (PasswordField)
    |
    |---- button                         (Button)