【问题标题】:Customizing TextField - JavaFX自定义文本字段 - JavaFX
【发布时间】:2015-07-10 13:33:16
【问题描述】:

如何使 TextField 看起来像这样?基本上,这是 Windows 8 计算器的一个区域。

我创建了一个 TextField,但它不接受以样式 .css 文件编写的属性。

-fx-background-color: #2f2d2f;
-fx-font-family: "Segoe UI", Helvetica, Arial, sans-serif;
-fx-border-width: 9px;
-fx-font-size: 125px;
-fx-text-fill: #ffffff;
-fx-display-caret: false;
-fx-background-radius: 0;

我不知道如何设置顶部边框。

【问题讨论】:

  • 你能展示你的 CSS 吗?
  • @James_D , #textField { -fx-background-color: #2f2d2f; -fx-font-family: "Segoe UI", Helvetica, Arial, sans-serif; -fx-border-width: 9px; -fx-font-size: 125px; -fx-text-fill: #ffffff; -fx-display-caret: false; } 我不知道如何设置顶部边框。
  • 你能用那个编辑你的问题吗,很难在评论中看到。我假设您在 TextField 上设置了 id...

标签: javafx textarea textfield


【解决方案1】:

这基本上对我有用。对于顶部边框,将您的 -fx-background-color 替换为此“嵌套背景”:

-fx-background-color: #2fa02f, #2f2d2f;
-fx-background-insets: 0, 1 0 0 0 ;

SSCCE:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TextField;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

public class TextFieldStyleTest extends Application {

    @Override
    public void start(Stage primaryStage) {
        TextField tf = new TextField();
        tf.setId("textField");
        StackPane root = new StackPane(tf);
        Scene scene = new Scene(root, 400, 400, Color.BLACK);
        scene.getStylesheets().add("text-field-style-test.css");
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

文本字段样式文本.css:

.root {
    -fx-background-color: black ;
    -fx-padding: 20 20 20 20 ;
}
#textField {
    -fx-background-color: #2fa02f, #2f2d2f;
    -fx-font-family: "Segoe UI", Helvetica, Arial, sans-serif;
    -fx-font-size: 125px;
    -fx-text-fill: #ffffff;
    -fx-display-caret: false;
    -fx-background-radius: 0;
    -fx-background-insets: 0, 1 0 0 0 ;
    -fx-padding: 1 ;

    -fx-alignment: center-right ;
}

【讨论】:

  • 您能再帮我解决一个问题吗?如何禁用 TextField 中数字的默认选择?例如,如果我将默认数字指定为零,那么当我启动我的应用程序时,它会自动被选中。提前感谢。
  • 这听起来像是一个不同的问题;您应该为此发布一个新问题。 (我不太清楚你的意思。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-02
  • 2021-07-12
  • 2019-01-31
  • 2023-04-01
  • 2013-01-13
  • 1970-01-01
  • 2020-10-01
相关资源
最近更新 更多