CodeArea: -fx-background-color doesn't work.
Andy Goryachev
andy.goryachev at oracle.com
Mon May 5 19:54:52 UTC 2025
You have to use highlights for that, since you can't assign CSS style to a part of the Text instance, and you can't set a background on it.
JDK-8355774 is pretty high on my list of things to do.
-andy
From: openjfx-dev <openjfx-dev-retn at openjdk.org> on behalf of PavelTurk <pavelturk2000 at gmail.com>
Date: Monday, May 5, 2025 at 12:47
To: openjfx-dev at openjdk.org <openjfx-dev at openjdk.org>
Subject: Re: CodeArea: -fx-background-color doesn't work.
Hello, Andy
Yes, I need to add a background color for a text segment within a paragraph using CSS.
I have just opened an issue with ID : 9078469.
Can anyone give an estimate of when this issue might be addressed? Background color is such a fundamental feature
that it's impossible to work without it.
Best regards, Pavel
On 5/5/25 22:09, Andy Goryachev wrote:
Dear Pavel:
Can you clarify what you are trying to do exactly?
If you are trying to add a background to a text segment within the paragraph (as your code seem to indicate), then the only way to do it is to call Builder.addHighlight().
If you are trying to set the background of the whole paragraph, you've hit another missing API similar to JDK-8355774 - there is currently no way to style the paragraphs via CSS. There is the Builder.setParagraphAttributes(StyleAttributeMap) but a CSS one is missing.
-andy
From: openjfx-dev <openjfx-dev-retn at openjdk.org><mailto:openjfx-dev-retn at openjdk.org> on behalf of PavelTurk <pavelturk2000 at gmail.com><mailto:pavelturk2000 at gmail.com>
Date: Saturday, May 3, 2025 at 10:07
To: openjfx-dev at openjdk.org<mailto:openjfx-dev at openjdk.org> <openjfx-dev at openjdk.org><mailto:openjfx-dev at openjdk.org>
Subject: CodeArea: -fx-background-color doesn't work.
For styling CodeArea, I use exclusively style classes, and this is the foundation of my entire architecture.
Today I tried to implement search highlighting (via background color), but it didn't work. Below is my test code.
Can anyone tell me how to set the background color using CSS? For example, in RichTextFX's CodeArea,
they have -rtfx-background-color.
public class JfxCodeArea extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
String text = """
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit
in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
""";
String css = """
.test {
-fx-font-weight: bold;
-fx-fill: red;
-fx-background-color: green;
}
""";
String data = "data:text/css;base64," + Base64.getEncoder().encodeToString(css.getBytes(StandardCharsets.UTF_8));
CodeArea codeArea = new CodeArea();
codeArea.getStylesheets().add(data);
codeArea.setSyntaxDecorator(new SyntaxDecorator() {
@Override
public RichParagraph createRichParagraph(CodeTextModel model, int index) {
var builder = RichParagraph.builder();
builder.addWithStyleNames(model.getPlainText(index), "test");
return builder.build();
}
@Override
public void handleChange(CodeTextModel m, TextPos start, TextPos end, int charsTop, int linesAdded, int charsBottom) {
}
});
VBox.setVgrow(codeArea, Priority.ALWAYS);
var button = new Button("Go!");
button.setOnAction(e -> codeArea.setText(text));
VBox root = new VBox(codeArea, button);
Scene scene = new Scene(root, 600, 200);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Best regards, Pavel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20250505/0c3efcb9/attachment-0001.htm>
More information about the openjfx-dev
mailing list