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-r...@openjdk.org> on behalf of Cormac Redmond 
<credm...@certak.com>
Date: Saturday, June 28, 2025 at 16:42
To: openjfx-dev@openjdk.org <openjfx-dev@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

Reply via email to