JavaFXはTableColumnのセルの背景色を設定します

ジミー・リー
TableColumn tc = new TableColumn();

tc.getStyleClass.add(".style in css file")

CSSファイルを使用してTableColumnを設定し、各セルに異なる背景色を付けたいと思います。どうすればこれを達成できますか?

例)TableColumn 1〜5
TableColumn 1、行3は黒、TableColumn 5、行4は緑...など

ファビアン

cellFactory列と行のインデックスに基づいて背景色を選択するを作成します

例:

TableView<Item<String>> tableView = new TableView<>();
// sample item class contains a single property with the same type as the type parameter (String in this case)
tableView.getItems().addAll(
        new Item<>("1"),
        new Item<>("2"),
        new Item<>("4"),
        new Item<>("5"),
        new Item<>("6"),
        new Item<>("7"),
        new Item<>("8"),
        new Item<>("9")
);

// create columns
TableColumn<Item<String>, String> column1 = new TableColumn<>("value");
TableColumn<Item<String>, Void> column2 = new TableColumn<>();
tableView.getColumns().addAll(column1, column2);

// create list of colors (CSS)
final List<String> colors = Arrays.asList(
        "blue",
        "green",
        "red",
        "violet",
        "yellow",
        ...
);

Callback factory = new Callback<TableColumn<Item<String>, Object>, TableCell<Item<String>, Object>>() {

    private int columns = tableView.getColumns().size();

    @Override
    public TableCell<Item<String>, Object> call(TableColumn<Item<String>, Object> param) {
        return new TableCell<Item<String>, Object>() {

            private int columnIndex = param.getTableView().getColumns().indexOf(param);

            @Override
            public void updateIndex(int i) {
                super.updateIndex(i);
                // select color based on index of row/column
                if (i >= 0) {
                    // select color repeating the color, if we run out of colors
                    String color = colors.get((i * columns + columnIndex) % colors.size());
                    this.setStyle("-fx-my-cell-background: " + color + ";");
                    System.out.println(getStyle());
                }
            }

            @Override
            protected void updateItem(Object item, boolean empty) {
                super.updateItem(item, empty);

                // assign item's toString value as text
                if (empty || item == null) {
                    setText(null);
                } else {
                    setText(item.toString());
                }
            }

        };
    }

};

column1.setCellValueFactory(new PropertyValueFactory<>("value"));
column1.setCellFactory(factory);
column2.setCellFactory(factory);

Scene scene = new Scene(tableView);
scene.getStylesheets().add(getClass().getResource("style.css").toExternalForm());

有効なCSSカラー文字列については、https//docs.oracle.com/javase/8/javafx/api/javafx/scene/doc-files/cssref.html#typecolorで説明しています

style.css

.table-cell:filled {
    -fx-background-color: -fx-my-cell-background;
}

.table-view:row-selection .table-row-cell:selected .table-cell {
    -fx-background-color: null;
}

.table-view:cell-selection .table-cell:selected {
    -fx-background-color: -fx-table-cell-border-color, -fx-background;
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

JavaFxはTableviewセルの背景色を動的に設定します

分類Dev

JavaFxはTableviewセルの背景色を動的に設定します

分類Dev

PhpSpreadsheetはセルの背景色を白に設定します

分類Dev

リストセルの背景色を設定しますが、:hover:selected背景色は保持します

分類Dev

JTableで指定されたセルの背景色を設定します

分類Dev

QtはQLineEditの背景色を設定します

分類Dev

AndroidStudioはビューの背景色を設定します

分類Dev

gnuplotはデータラベルの背景色を設定します

分類Dev

UITableViewは特定のセルの背景色を変更します

分類Dev

Kivyはラベルの背景色を定義します

分類Dev

マークダウンテーブルの特定のセルの背景色を設定します

分類Dev

表のセルに背景色を設定する

分類Dev

Apache Pio 4.1.0を使用してセルの背景色を設定する方法

分類Dev

setData()を使用してQTreeViewのセルの背景色を設定できないのはなぜですか?

分類Dev

別のセルの背景色に基づいてセルの背景色を設定する

分類Dev

POIはセルの背景色を削除します

分類Dev

Google Apps Script:特定の値を持つセルを見つけて、その背景色を設定します

分類Dev

セルの背景色を、含まれているRGB値に設定します。どうやって?

分類Dev

Qtは選択したQTableWidgetItemsの背景色を設定します

分類Dev

Androidの背景色を正しく設定する方法は?

分類Dev

matplotlibで画像の背後に背景色を設定します

分類Dev

CSS:色を親の背景色に設定します

分類Dev

バナーの背景色を設定します

分類Dev

konvajs-レイヤーの背景色を設定します

分類Dev

xamarinは、16進値からビューの背景色を設定します

分類Dev

JavaFX:TreeView全体の背景色を設定することは可能ですか?

分類Dev

JColorChooserを使用してJButtonの前景色と背景色を設定します

分類Dev

MigraDocテーブルのセルの背景色を設定する方法

分類Dev

それはiTextのPDFのセルにARGBの背景色を設定することは可能ですか?

Related 関連記事

  1. 1

    JavaFxはTableviewセルの背景色を動的に設定します

  2. 2

    JavaFxはTableviewセルの背景色を動的に設定します

  3. 3

    PhpSpreadsheetはセルの背景色を白に設定します

  4. 4

    リストセルの背景色を設定しますが、:hover:selected背景色は保持します

  5. 5

    JTableで指定されたセルの背景色を設定します

  6. 6

    QtはQLineEditの背景色を設定します

  7. 7

    AndroidStudioはビューの背景色を設定します

  8. 8

    gnuplotはデータラベルの背景色を設定します

  9. 9

    UITableViewは特定のセルの背景色を変更します

  10. 10

    Kivyはラベルの背景色を定義します

  11. 11

    マークダウンテーブルの特定のセルの背景色を設定します

  12. 12

    表のセルに背景色を設定する

  13. 13

    Apache Pio 4.1.0を使用してセルの背景色を設定する方法

  14. 14

    setData()を使用してQTreeViewのセルの背景色を設定できないのはなぜですか?

  15. 15

    別のセルの背景色に基づいてセルの背景色を設定する

  16. 16

    POIはセルの背景色を削除します

  17. 17

    Google Apps Script:特定の値を持つセルを見つけて、その背景色を設定します

  18. 18

    セルの背景色を、含まれているRGB値に設定します。どうやって?

  19. 19

    Qtは選択したQTableWidgetItemsの背景色を設定します

  20. 20

    Androidの背景色を正しく設定する方法は?

  21. 21

    matplotlibで画像の背後に背景色を設定します

  22. 22

    CSS:色を親の背景色に設定します

  23. 23

    バナーの背景色を設定します

  24. 24

    konvajs-レイヤーの背景色を設定します

  25. 25

    xamarinは、16進値からビューの背景色を設定します

  26. 26

    JavaFX:TreeView全体の背景色を設定することは可能ですか?

  27. 27

    JColorChooserを使用してJButtonの前景色と背景色を設定します

  28. 28

    MigraDocテーブルのセルの背景色を設定する方法

  29. 29

    それはiTextのPDFのセルにARGBの背景色を設定することは可能ですか?

ホットタグ

アーカイブ