JFX25: TableView + col.setMaxWidth() now clipping column headers
Andy Goryachev
andy.goryachev at oracle.com
Mon Jun 30 21:29:23 UTC 2025
When using constrained resize policy, it is better to set the preferred widths explicitly. Otherwise, the initial distribution is a function of default preferred / maximum sizes which are, if I recall correctly, are 80 and 5000 respectively.
You can see that the first column has shrunk because of the change in the max width (5000 -> 500). I am not entirely sure why setting the max width of one column has such an effect, it is certainly not used for initiali allocation except to limit the width, which is not the case in the screenshots provided.
What happens when you set the preferred width for the columns?
-andy
From: openjfx-dev <openjfx-dev-retn at openjdk.org> on behalf of Cormac Redmond <credmond at certak.com>
Date: Saturday, June 28, 2025 at 16:42
To: openjfx-dev at openjdk.org <openjfx-dev at openjdk.org>
Subject: JFX25: TableView + col.setMaxWidth() now clipping column headers
Hi,
While testing JFX25 (on Windows), previously perfectly-sized column sizes are now "too small", hiding parts of the column header.
Code to reproduce:
public class TableViewColSizeBug extends Application {
@Override
public void start(Stage stage) {
TableView<String> table = new TableView<>();
TableColumn<String, String> col1 = new TableColumn<>();
col1.setGraphic(new Text("Column One (... ...)"));
table.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY_FLEX_LAST_COLUMN);
// Setting a max width causes a "too small" column size
col1.setMaxWidth(500); // Note large param
table.getColumns().addAll(col1, new TableColumn<>("Col 2"), new TableColumn<>("Col 3"), new TableColumn<>("Col 4"), new TableColumn<>("Col 5"));
stage.setScene(new Scene(new VBox(table), 600, 200));
stage.show();
}
public static void main(String[] args) {
launch();
}
}
Notice the clear difference between JFX24 and JFX25 behaviour. If you do NOT setMaxWidth, there is no issue. For some reason, calling setMaxWidth, no matter how large the param, triggers this.
JFX25 (as per code above, setting a column Text graphic), col width too small:
[cid:ii_mcguy9tu1]
JFX25 using "new TableColumn<>("Column One (... ...)")", instead of setting a Text graphic; col width also too small:
[cid:ii_mcgvbj4q3]
JFX25 when you do NOT do setMaxWidth(...), looks fine:
[cid:ii_mcgvsnm24]
JFX24 (in all instances, looks fine):
[cid:ii_mcguwozv0]
Is this a bug?
Kind Regards,
Cormac
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20250630/8caa115d/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 13967 bytes
Desc: image.png
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20250630/8caa115d/image-0004.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 11186 bytes
Desc: image.png
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20250630/8caa115d/image-0005.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 9817 bytes
Desc: image.png
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20250630/8caa115d/image-0006.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 10133 bytes
Desc: image.png
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20250630/8caa115d/image-0007.png>
More information about the openjfx-dev
mailing list