JavaFX TextArea & TextField 显示不同的颜色

Posted

技术标签:

【中文标题】JavaFX TextArea & TextField 显示不同的颜色【英文标题】:JavaFX TextArea & TextField display different colors 【发布时间】:2019-07-16 08:53:51 【问题描述】:

在我的屏幕上,我想要一个 TextArea 和一个 TextField,我会根据内容更改其背景颜色。两者都不可编辑(以防万一)。

目前,我正在使用以下命令设置背景:

textArea.setStyle("-fx-control-inner-background: rgba(255,255,0,.5)");
textField.setStyle("-fx-control-inner-background: rgba(255,255,0,.5)");

虽然这设置了正确的颜色,但我的 TextArea 看起来仍然比我的 TextField 亮很多,它似乎有某种阴影/阴影。

为什么会出现这种情况?是否有可能实现两者相同的外观?

【问题讨论】:

我想说这是因为在边框/背景的图层中完成了一些较暗的阴影。 TextField 中较小的尺寸可能会使它看起来更暗。不过,这只是我的猜测。 嗯。这似乎是正确的。阴影(我不想要的)取决于-fx-background-color - 但似乎边框(我仍然想要)也取决于它。 【参考方案1】:

我的同事设法用以下文本字段的代码行解决了这个问题:

-fx-background-color: rgba(255,255,0,.5); 
-fx-border-color: derive(-fx-text-box-border, -10%);
-fx-border-radius: 2;

事实证明,应该将-fx-background-color 用于TextFields,将-fx-control-inner-background 用于TextAreas。你知道的越多。

【讨论】:

以上是关于JavaFX TextArea & TextField 显示不同的颜色的主要内容,如果未能解决你的问题,请参考以下文章

JavaFX:在进入 TextArea 时将插入符号/光标放在 TextArea 的末尾

JavaFX - TextArea 的掩码文本

为啥 textarea 不是 input[type="textarea"]?

带滚动条的只读 TextArea [JavaFx]

JavaFX - 限制 TextArea 行?

如何在 setText 之后滚动 JavaFX TextArea