java-8 - 设置没有 CSS 的 JavaFX TextField 的文本颜色
问题描述
我最近在 JavaFX 中做了很多工作,只编写代码——没有 CSS 没有 FXML,我想保持这种方式。我已经设法以这种方式完成了所有我想要的事情,除了现在我无法在不使用 CSS 的情况下设置 TextField 的文本颜色,所以我在这里寻求建议。有没有办法做到这一点,不管它有多hacky?
请注意,我仍在使用 Java 8 版本。
解决方案
考虑到您的观点:下面的“没有 CSS”和“它有多 hacky”是实现文本着色的一种方法。
import com.sun.javafx.scene.control.skin.TextFieldSkin;
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 TextField_TextColor_Demo extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
TextField textField = new TextField();
textField.setSkin(new TextFieldSkin(textField){
@Override
protected void layoutChildren(double x, double y, double w, double h) {
super.layoutChildren(x, y, w, h);
if(textField.getProperties().get("colorChanged")==null) {
textFill.setValue(Color.RED);
textField.getProperties().put("colorChanged",true);
}
}
});
StackPane root = new StackPane(textField);
Scene scene = new Scene(root, 300,300);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String... args){
Application.launch(args);
}
}
推荐阅读
- android - proguard-rules.pro 似乎不适用于 R8
- javascript - 有条件的 Js 柯里化
- r - 如何使用 R 中的查找方法基于其他列计算新列?
- c# - 如何拆分 DateTime 并仅在连接到 SQL Server 数据库的列表视图中搜索日期?
- html - 使用 Flask 向 HTML 添加属性的有效方法,使用更少的代码行来选择元素?
- heroku - 将godadddy域指向heroku应用程序时,裸域不起作用
- coq - Coq:证明 conat 是有限的或无限的
- unity3d - Unity:(可能)由电影机器或太多对撞机引起的严重滞后
- r - 如何将数据框的每一行(参与者)导出到单独的 pdf 文件中?
- java - JDK11“jstat -gc”中的“CGC”和“CGCT”是什么意思
“?