テーブルビューポップアップに提案のドロップダウンを表示するオートコンプリートテキストを開発しようとしています.javafx 2.1でテーブルビューのヘッダー列全体を非表示にする方法の問題があります.
11011 次
3 に答える
14
テーブルにカスタム スタイルシートを適用します。
table.getStylesheets().addAll(getClass().getResource("hidden-tableview-headers.css").toExternalForm());
このファイルhidden-tableview-headers.css
は、css リソースをロードするクラスと同じ場所に配置され、次の行が含まれています。
.column-header-background { visibility: hidden; -fx-padding: -1em; }
このvisibility: hidden
属性は、JavaFX にノードを描画しないように指示しますが、見出しがあった場所にはスペースを残します。ヘッダーは 1 行の高さのテキストであるため、 を設定することで、非表示のヘッダーがスペースを占有しないように指定できます-fx-padding: -1em;
。
于 2012-09-07T20:15:06.497 に答える
5
解決策は非常に簡単です。テーブルビューがレンダリングされた後、テーブルヘッダーを取得して非表示にすることができるため、テーブルビューのレイアウトが変更されたときにテーブルヘッダーを再レイアウトする必要はありません。テーブルのレンダリングが行われたことをキャッチするには、widthプロパティの変更を使用して、テーブルヘッダーを非表示にします
コードは次のとおりです。
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);
}
}
});
于 2012-09-17T18:31:44.800 に答える
0
追加の .css ファイルを追加したくない場合は、既存の css を使用できます。
.hide-header .column-header-background {
visibility: hidden; -fx-padding: -1em;
}
.hide-header
Javaコードに追加する必要があるランダムな名前はどこにありますか:
table.getStyleClass().add("hide-header");
于 2016-07-07T14:36:17.840 に答える