[External] : Re: JavaFX TableView text in the cells of the columns seems to jump

Andy Goryachev andy.goryachev at oracle.com
Wed May 29 16:38:11 UTC 2024


Unfortunately, this idea won't work in JavaFX, because it needs the change in the Skin/Behavior.

-andy

From: Mads <mailtiltssalg at gmail.com>
Date: Tuesday, May 28, 2024 at 01:59
To: Andy Goryachev <andy.goryachev at oracle.com>
Cc: openjfx-dev at openjdk.org <openjfx-dev at openjdk.org>
Subject: [External] : Re: JavaFX TableView text in the cells of the columns seems to jump
Hi Andy

Maybe a fix (quick?) could be a option to always show the scrollbar? I have used that option before in HTML/CSS: https://www.w3schools.com/howto/howto_css_force_scrollbars.asp<https://urldefense.com/v3/__https:/www.w3schools.com/howto/howto_css_force_scrollbars.asp__;!!ACWV5N9M2RV99hQ!OiQHnV1IRPBLr8E7qysmC45r0u75OId7kWTL5bCCrBd6vruKkW2DGOc8BKadBknp7lQxA2cKMz2ZUWU2GyH6SOaB3ueq$>

Kind Regards
Mads

Den tirs. 26. mar. 2024 kl. 16.31 skrev Andy Goryachev <andy.goryachev at oracle.com<mailto:andy.goryachev at oracle.com>>:
Hi there.

Thank you for bringing this up in the mailing list (we **do not** monitor stackoverflow).

Do I understand it correctly from this stackoverflow posting that the problem is a momentary adjustment of the columns when the vertical scroll bar appears?  And that it works correctly otherwise?

If that's the case, yes - this is the expected behavior, at least given the current design of the TableView skin.  If one adds a change listener to, let's say, the last column, one will see three updates:


  1.  in TableColumnHeader.doColumnAutoSize() as a response to setting the scene
  2.  TableColumnHeader.resizeColumnToFitContent(), called by TableViewSkinBase.updateContentWidth() as a response to Scene.doLayoutPass()
  3.  TableView.setContentWidth() as a response to VirtualFlow.computeBarVisibility() when it decides the vertical scroll bar needs to be shown.

What I can't tell is whether steps 2 and 2 can be combined - in other words, whether it is possible to know that the vertical scroll bar needs to be shown before the layout pass is done.  I am sure it can be in the case of the fixed row height, but if the row heights depend on the content width the things might get complicated.

If it can, we can try to investigate, though it will be a low priority enhancement (the table does work correctly save for a momentary flicker).  I am going to create a JBS ticket https://bugs.openjdk.org/browse/JDK-8329104 to investigate.

Cheers,
-andy






From: openjfx-dev <openjfx-dev-retn at openjdk.org<mailto:openjfx-dev-retn at openjdk.org>> on behalf of Mads <mailtiltssalg at gmail.com<mailto:mailtiltssalg at gmail.com>>
Date: Tuesday, March 26, 2024 at 05:58
To: openjfx-dev at openjdk.org<mailto:openjfx-dev at openjdk.org> <openjfx-dev at openjdk.org<mailto:openjfx-dev at openjdk.org>>
Subject: JavaFX TableView text in the cells of the columns seems to jump
Please see this Stack Overflow post where I have tried my best to document what is going on:

https://stackoverflow.com/questions/77369768/javafx-tableview-text-in-the-cells-of-the-columns-seems-to-jump<https://urldefense.com/v3/__https:/stackoverflow.com/questions/77369768/javafx-tableview-text-in-the-cells-of-the-columns-seems-to-jump__;!!ACWV5N9M2RV99hQ!OiQHnV1IRPBLr8E7qysmC45r0u75OId7kWTL5bCCrBd6vruKkW2DGOc8BKadBknp7lQxA2cKMz2ZUWU2GyH6SDpLvqeO$>

Seems to be an issue with CONSTRAINED_RESIZE_POLICY_ALL_COLUMNS when drawing the table for the first time and when vertical scrollbar is added?

Is this how it is intended to be?

Regards
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20240529/50f37e73/attachment.htm>


More information about the openjfx-dev mailing list