[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