Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javafx:设置TreeTableView的背景_Java_Css_Javafx - Fatal编程技术网

Javafx:设置TreeTableView的背景

Javafx:设置TreeTableView的背景,java,css,javafx,Java,Css,Javafx,我正在尝试设置TreeTableView的背景 使用的CSS样式: .tree-table-cell, cell{ -fx-background-color: rgba(0, 0, 0, 1); -fx-background-image: url("blur03.jpg"); } .tree-table-row-cell{ -fx-background-image: url("blur03.jpg"); } 下面是treetableview中TreeTableColumn

我正在尝试设置
TreeTableView
的背景

使用的CSS样式:

.tree-table-cell, cell{
   -fx-background-color: rgba(0, 0, 0, 1);
   -fx-background-image: url("blur03.jpg");
}

.tree-table-row-cell{
   -fx-background-image: url("blur03.jpg");
}
下面是treetableview中TreeTableColumn的实现

final TreeTableColumn<RootMaster, Integer> dataColumn = new TreeTableColumn<>("Data");
    dataColumn.setCellValueFactory(new TreeItemPropertyValueFactory<RootMaster, Integer>("budgetSum"));
    dataColumn.setCellFactory(col -> {
        TreeTableCell<RootMaster, Integer> cell = new TreeTableCell<RootMaster, Integer>() {
            @Override
            public void updateItem(Integer item, boolean empty) {
                super.updateItem(item, empty);
                if (empty) {
                    setText(null);
                } else {
                    setText(item.toString());
                }
            }
        };
        cell.setAlignment(Pos.CENTER);
        return cell ;
    });

不透明度可以帮助您使其稍微透明,以显示其背后的父对象

内联CSS:

tableView.setStyle(
"-fx-background-color: rgba(0, 100, 100, 0.5);
-fx-background-radius: 10;"
);
单独的CSS文件:

.tree-table-view, .table-view{
-fx-background-color: rgba(0, 100, 100, 0.5);
}

在上面的代码中,0.5指定节点的不透明度或alpha属性。值为0.5将使其半不透明。因此,a的值范围从0到1,其中1是完全可见的,0是完全不透明的。

不透明度可以帮助您使其稍微透明,以显示其后面的父对象

内联CSS:

tableView.setStyle(
"-fx-background-color: rgba(0, 100, 100, 0.5);
-fx-background-radius: 10;"
);
单独的CSS文件:

.tree-table-view, .table-view{
-fx-background-color: rgba(0, 100, 100, 0.5);
}
在上面的代码中,0.5指定节点的不透明度或alpha属性。值为0.5将使其半不透明。因此,a的值范围从0到1,其中1完全可见,0完全不透明。

尝试以下css样式:

.tree-table-row-cell {
    -fx-background: transparent;
}

.tree-table-view {
    -fx-background-color: transparent;
}
通过以下方式进行测试:

@Override
public void start( Stage stage )
{
    TreeItem<String> childNode1 = new TreeItem<>( "Node 1" );
    TreeItem<String> childNode2 = new TreeItem<>( "Node 2" );
    TreeItem<String> childNode3 = new TreeItem<>( "Node 3" );

    TreeItem<String> root = new TreeItem<>( "Root" );
    root.setExpanded( true );

    root.getChildren().setAll( childNode1, childNode2, childNode3 );

    TreeTableColumn<String, String> column = new TreeTableColumn<>( "Column" );
    column.setPrefWidth( 150 );

    column.setCellValueFactory( ( TreeTableColumn.CellDataFeatures<String, String> p ) 
            -> new ReadOnlyStringWrapper( p.getValue().getValue() ) );

    TreeTableView<String> treeTableView = new TreeTableView<>( root );
    treeTableView.getColumns().add( column );


    VBox box = new VBox( treeTableView, new Button( "test" ) );
    box.setStyle( "-fx-background-color: green" );

    final Scene scene = new Scene( box, 200, 400 );
    scene.getStylesheets().add( "path/to/the-style-above.css" );
    stage.setScene( scene );
    stage.show();
}
@覆盖
公众假期开始(阶段)
{
TreeItem childNode1=新的TreeItem(“节点1”);
TreeItem childNode2=新的TreeItem(“节点2”);
TreeItem childNode3=新的TreeItem(“节点3”);
TreeItem root=新的TreeItem(“根”);
root.setExpanded(true);
root.getChildren().setAll(childNode1、childNode2、childNode3);
TreeTableColumn=新的TreeTableColumn(“列”);
列宽(150);
column.setCellValueFactory((TreeTableColumn.CellDataFeatures p)
->新的ReadOnlyStringWrapper(p.getValue().getValue());
TreeTableView TreeTableView=新的TreeTableView(根目录);
treeTableView.getColumns().add(列);
VBox框=新的VBox(树状视图,新按钮(“测试”);
box.setStyle(“-fx背景色:绿色”);
最终场景=新场景(框,200400);
scene.getStylesheets().add(“path/to/the style over.css”);
舞台场景;
stage.show();
}
尝试以下css样式:

.tree-table-row-cell {
    -fx-background: transparent;
}

.tree-table-view {
    -fx-background-color: transparent;
}
通过以下方式进行测试:

@Override
public void start( Stage stage )
{
    TreeItem<String> childNode1 = new TreeItem<>( "Node 1" );
    TreeItem<String> childNode2 = new TreeItem<>( "Node 2" );
    TreeItem<String> childNode3 = new TreeItem<>( "Node 3" );

    TreeItem<String> root = new TreeItem<>( "Root" );
    root.setExpanded( true );

    root.getChildren().setAll( childNode1, childNode2, childNode3 );

    TreeTableColumn<String, String> column = new TreeTableColumn<>( "Column" );
    column.setPrefWidth( 150 );

    column.setCellValueFactory( ( TreeTableColumn.CellDataFeatures<String, String> p ) 
            -> new ReadOnlyStringWrapper( p.getValue().getValue() ) );

    TreeTableView<String> treeTableView = new TreeTableView<>( root );
    treeTableView.getColumns().add( column );


    VBox box = new VBox( treeTableView, new Button( "test" ) );
    box.setStyle( "-fx-background-color: green" );

    final Scene scene = new Scene( box, 200, 400 );
    scene.getStylesheets().add( "path/to/the-style-above.css" );
    stage.setScene( scene );
    stage.show();
}
@覆盖
公众假期开始(阶段)
{
TreeItem childNode1=新的TreeItem(“节点1”);
TreeItem childNode2=新的TreeItem(“节点2”);
TreeItem childNode3=新的TreeItem(“节点3”);
TreeItem root=新的TreeItem(“根”);
root.setExpanded(true);
root.getChildren().setAll(childNode1、childNode2、childNode3);
TreeTableColumn=新的TreeTableColumn(“列”);
列宽(150);
column.setCellValueFactory((TreeTableColumn.CellDataFeatures p)
->新的ReadOnlyStringWrapper(p.getValue().getValue());
TreeTableView TreeTableView=新的TreeTableView(根目录);
treeTableView.getColumns().add(列);
VBox框=新的VBox(树状视图,新按钮(“测试”);
box.setStyle(“-fx背景色:绿色”);
最终场景=新场景(框,200400);
scene.getStylesheets().add(“path/to/the style over.css”);
舞台场景;
stage.show();
}

在树表单元格上应用rgba(0,0,0,1)时;它变成了全黑,但是当我设置背景图像时,它工作了,除了图像应用于一行中的每个单元格,我想要的是图像应用于所有树视图,而不是重复。我会贴一张照片。感谢您的回复如果您想要透明度和显示VBox,为什么要添加图像?如果您希望在使用背景图像时具有透明度,则可以使用
-fx background color:transparent
。尽管您必须检查该图像是否是可以设置为trasparent的有效图像。Png文件允许透明。也许可以试试。vbox的背景是一张图片,因为我不能使treetableview透明,所以它显示vbox背景;我现在尝试直接设置treetableview的背景(使用作为VBox背景的图像);这就是为什么我现在要尝试做不同的事情。我会更新我的问题。感谢我在树表单元格上应用rgba(0,0,0,1);它变成了全黑,但是当我设置背景图像时,它工作了,除了图像应用于一行中的每个单元格,我想要的是图像应用于所有树视图,而不是重复。我会贴一张照片。感谢您的回复如果您想要透明度和显示VBox,为什么要添加图像?如果您希望在使用背景图像时具有透明度,则可以使用
-fx background color:transparent
。尽管您必须检查该图像是否是可以设置为trasparent的有效图像。Png文件允许透明。也许可以试试。vbox的背景是一张图片,因为我不能使treetableview透明,所以它显示vbox背景;我现在尝试直接设置treetableview的背景(使用作为VBox背景的图像);这就是为什么我现在要尝试做不同的事情。我会更新我的问题。感谢我在树表单元格上应用rgba(0,0,0,1);它变成了全黑,但是当我设置背景图像时,它工作了,除了图像应用于一行中的每个单元格,我想要的是图像应用于所有树视图,而不是重复。我会贴一张照片。感谢您的回复如果您想要透明度和显示VBox,为什么要添加图像?如果您希望在使用背景图像时具有透明度,则可以使用
-fx background color:transparent
。尽管您必须检查该图像是否是可以设置为trasparent的有效图像。Png文件允许透明。也许可以试试。vbox的背景是一张图片,因为我不能使treetableview透明,所以它显示vbox背景;我现在尝试直接设置treetableview的背景(使用作为VBox背景的图像);这就是为什么我现在要尝试做不同的事情。我会更新我的问题。谢谢你有定制的CellFactorys吗?我更新了这个问题,你可以看到它的实现,谢谢你的支持reply@usert