[External] : Re: Convenience factories for Border and Background
Marius Hanl
mariushanl at web.de
Tue Sep 21 09:43:45 UTC 2021
As also written in a comment
here: https://github.com/openjdk/jfx/pull/610
I would like to propose one more convenience method which should be
added to JavaFX:
public static Border stroke(Paint stroke, double width) {
return new Border(new BorderStroke(stroke, BorderStrokeStyle.SOLID, null, ne
w BorderWidths(width)));
}
I think it's quite common that you want to create a solid border with
another width then the default of 1 (for every side).
Note: This is also the last use case I think makes sense to add as a
convenience method.
Any other use case is likely to be so complex that it makes sense to
use the normal existing constructors.
Feel free to share you opinion.
- Marius
Gesendet: Dienstag, 08. Juni 2021 um 03:19 Uhr
Von: "Nir Lisker" <nlisker at gmail.com>
An: "Kevin Rushforth" <kevin.rushforth at oracle.com>
Cc: "openjfx-dev at openjdk.java.net Mailing"
<openjfx-dev at openjdk.java.net>
Betreff: Re: [External] : Re: Convenience factories for Border and
Background
The new API:
1. `Border.of(Paint stroke)` or `Border.stroke(Paint stroke)` that does
`new Border(new BorderStroke(Paint stroke , BorderStrokeStyle.SOLID,
null,
null));`
2. `Background.of((Paint fill)` or `Background.fill(Paint fill)` that
does
`new Background(new BackgroundFill(Paint fill, null, null));`
I don't mind either name choice.
On Tue, Jun 8, 2021 at 2:50 AM Kevin Rushforth
<kevin.rushforth at oracle.com>
wrote:
> If I recall, there were a few developers that chimed in. It's a
simple
> enough addition -- at least your original proposal (not the
suggestion of
> mirroring the Color API, which I don't like) -- that it seems OK to
me.
>
> Can you repost your currently proposed API and see if those who might
like
> to use it are satisfied with it?
>
> -- Kevin
>
>
> On 6/7/2021 4:41 PM, Nir Lisker wrote:
>
> Does this constitute sufficient interest in the enhancement?
>
> On Thu, May 13, 2021 at 6:41 PM Michael Strauß
<michaelstrau2 at gmail.com>
> wrote:
>
>> Another option could be to mirror the `Color` API in both `Border`
and
>> `Background`, like in the following examples:
>>
>> Color.rgb(125, 100, 75)
>> Border.rgb(125, 100, 75)
>> Background.rgb(125, 100, 75)
>>
>> Color.gray(127)
>> Border.gray(127)
>> Background.gray(127)
>>
>> Color.web("orange", 0.5)
>> Border.web("orange", 0.5)
>> Background.web("orange", 0.5)
>>
>> We could also mirror the named color constants, which would enable a
>> very compact syntax:
>>
>> StackPane pane = new StackPane();
>> pane.setBorder(Border.RED);
>> pane.setBackground(Background.BLUE);
>>
>> This is very similar to how "red" or "blue" are valid values for
>> "-fx-border" or "-fx-background" in CSS.
>>
>
>
More information about the openjfx-dev
mailing list