JavaFX可编辑tableview:如何更改TableCell内TextField的大小和css?

时间:2014-05-20 11:00:50

标签: java css javafx

我在css中更改了TableRows的高度并且它运行良好,但是如何更改TableCell中应该可编辑的TextField的大小。希望图片可以解释我的问题:enter image description here

1 个答案:

答案 0 :(得分:1)

您可以通过添加css来更改文本字段后的文本字段的css。您也可以在代码中更改一些内容。

    private void createTextField() {
        textField = new TextField(getString());
        textField.setStyle("-fx-padding 1px 1px 1px 1px;-fx-font-size: 10pt;");
        //or another way
        textField.setPadding(new Insets(0,0,0,5));
        textField.setFont(new Font(8));

您还可以使用textField.getStyleClass().add("my-textfield");设置样式类,然后使用.my-textfield{css stuff...}

在程序样式表中创建样式

我认为最好的想法是不更改行大小,而是更改字体。然后行高自动更改。您甚至可以通过向场景添加带.root{ -fx-font-size:12pt;}的样式表来更改整个应用程序中的字体。

Oracle sample有一个自定义编辑单元格,例如12-11。这就是创建TextField的地方。

如果使用TextFieldTableCell.forTableColumn,可以使用.text-field-table-cell

设置样式
.text-field-table-cell{
    -fx-font-size:15pt;
    -fx-background-color: pink;
}

即使在编辑之前,它也将为所有单元格设置样式。如果您只想要处于编辑状态的样式,请使用.text-field-table-cell .text-field{。而且它们不一定是粉红色的。)