zoukankan      html  css  js  c++  java
  • how to javafx hide background header of a tableview?

    http://stackoverflow.com/questions/12324464/how-to-javafx-hide-background-header-of-a-tableview

    ————————————————————————————————————————————————————————

    I'm trying to develop auto complete text, which shows a dropdown of suggestions in tableview popup, and I'm having an issue of how can I hide the whole header-column of tableview in javafx 2.1

    2 Answers

    The solution is very simple; after the tableview renders, we can get the table header and make invisible, therefor the table header doesn't have to re-layout when the table view layout changes. To catch table rendering is done, we can use width property change, and hide the table header

    Here is the code:

    tableView.widthProperty().addListener(new ChangeListener<Number>() {
            @Override
            public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) {
                // Get the table header
                Pane header = (Pane)tableView.lookup("TableHeaderRow");
                if(header!=null && header.isVisible()) {
                  header.setMaxHeight(0);
                  header.setMinHeight(0);
                  header.setPrefHeight(0);
                  header.setVisible(false);
                  header.setManaged(false);
                }
            }
        });

    **********************************************

    Apply a custom stylesheet to the table:

    table.getStylesheets().addAll(getClass().getResource("hidden-tableview-headers.css").toExternalForm());

    Where the file hidden-tableview-headers.css is placed in the same location as the class loading the css resource and contains the line:

    .column-header-background { visibility: hidden; -fx-padding: -1em; }

    The visibility: hidden attribute tells JavaFX not to draw the node, but still leave space where the heading was. As the header is 1 row of text height high, you can tell the invisible header not to take up any space by setting -fx-padding: -1em;.

       
    Thanks jewelsea, but this will keep an empty space instead of the column header, and I want to remove it. –  Anas Aswad Sep 11 '12 at 11:08
       
    Added a -fx-padding setting to the suggested css so that the invible column header does not take up any space on the screen (as recommended by an anonymous stackoverflow user). –  jewelsea Jun 5 at 21:53
  • 相关阅读:
    升级:Logical Upgrade升级MySQL5.6.26
    基于GTID恢复误篡改数据
    mysql迁移:ibd表空间迁移库表
    mysql迁移:xtrabackup迁移mysql5.7.32
    Pycharm最新激活码2019
    转载:Prometheus+Grafana搭建HBase监控仪表盘
    总结《Elasticsearch源码解析和优化实战》第一讲
    yarn resourcemanager调优
    presto安装和集成kerberos的hive
    转载:shell expect实战实例
  • 原文地址:https://www.cnblogs.com/cuizhf/p/3423293.html
Copyright © 2011-2022 走看看