My JavaFX Christmas Wishlist
Kevin Rushforth
kevin.rushforth at oracle.com
Thu Nov 16 21:53:31 UTC 2023
There are some interesting things on this list, and in some of the
follow-on messages. This reply is just looking at the AWT issue.
It depends on what you mean by "remove AWT". Removing all internal
dependencies (aside from Swing/JavaFX interop of course) on java.desktop
(AWT/Swing/Java2D) and providing replacement API for the functionality
that is missing in JavaFX would be a very large effort. At a minimum:
Implementation dependencies:
* Refactor Java Beans implementation in javafx.base such that
java.desktop is optional
* Rewrite implementation of JavaFX printing to use native printing
capability (this is a large effort)
* Any other places where the implementation in javafx.graphics uses some
Java2D utilities (it looks like we might have removed the last of these)
New API for missing features to reach parity with java.desktop:
* Image I/O (this is the largest piece)
* Image operators
* Headless support
* Desktop integration (we want to do this anyway at some point)
If all you need from the list of missing features w.r.t. java.desktop is
a Tray Icon (part of desktop integration), the largest piece would be
the printing dependency. If you don't print, and can do a custom build
of JavaFX to remove it, it might not be too bad, but still work.
-- Kevin
On 11/16/2023 1:08 AM, Dirk Lemmermann wrote:
> It is mainly an issue when trying to run a JavaFX app natively
> (GraalVM, Gluon). You can not have AWT in your classpath when
> compiling to native code. It is not supported.
> Dirk
>
>> Am 15.11.2023 um 20:31 schrieb David Alayachew
>> <davidalayachew at gmail.com>:
>>
>> My bigger question is asking what you lose by having AWT in JavaFX.
>> Is there something fundamentally problematic about it that its
>> removal would solve/alleviate a problem?
>>
>> Whereas on the other hand, AWT has some very useful libraries that
>> are in use by nearly all Java GUI frameworks. For example, if you
>> want to do anything really complex with 2D Image work, you will
>> inevitably end up using java.awt.BufferedImage. It's simple, but very
>> fast.
>>
>> On Wed, Nov 15, 2023 at 12:18 PM Dirk Lemmermann
>> <dlemmermann at gmail.com> wrote:
>>
>> 3D: unfortunately that is completely out of my comfort zone … for
>> this feature request I am merely the messenger.
>> AWT: I was thinking that this is mostly a refactoring and
>> probably code duplication?
>>
>> Dirk
>>
>>> Am 15.11.2023 um 14:28 schrieb Nir Lisker <nlisker at gmail.com>:
>>>
>>> 3D line and point primitives
>>>
>>>
>>> I filed https://bugs.openjdk.org/browse/JDK-8316398 for this
>>> already. As noted, it requires a somewhat complex computation
>>> for intersections and possibly for contains. If you would like
>>> to write these Mesh classes, like the current TriangleMesh, I
>>> can write the rest.
>>>
>>> removal of AWT
>>>
>>>
>>> Isn't that *a lot* of work? All the image IO is AWT, no?
>>>
>>> On Wed, Nov 15, 2023 at 10:48 AM Dirk Lemmermann
>>> <dlemmermann at gmail.com> wrote:
>>>
>>> Hi guys,
>>>
>>> I already mentioned this at the JavaFX BOF at DEVOXX and
>>> also posted this on Twitter but wanna make sure it gets the
>>> visibility it deserves:
>>>
>>> All I want for Christmas is … / what I think is needed for
>>> JavaFX going forward ...
>>>
>>> - removal of AWT
>>> - a tray API (tray icon)
>>> - undecorated interactive stage style
>>> - blur support for stages
>>> - WebP image format support
>>> - native embedded browser (Chromium)
>>> - 3D line and point primitives
>>> - injection support in FXML for custom controls
>>> - TableView improvements, aka. TableView2
>>>
>>> (order of items does not imply priority)
>>>
>>> Dirk
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20231116/8eae1513/attachment-0001.htm>
More information about the openjfx-dev
mailing list