Вопрос по – Установить шрифт в javafx

4

Как установить шрифт для столбца в табличном представлении в Java FX. У меня есть таблица с 3 столбцами, и я хочу установить разные шрифты для каждого из столбцов. Кроме того, возможно ли изменить шрифт во время выполнения. Пожалуйста, помогите с примером кода.

Ваш Ответ

3   ответа
13
Changing the table column style:

TableColumn # setCellFactory () настроить отображение элементов ячейки.
Например, датамодель с такимПерсональный класс:

// init code vs..
TableColumn firstNameCol = new TableColumn("First Name");
firstNameCol.setMinWidth(100);
firstNameCol.setCellValueFactory(new PropertyValueFactory<Person, String>("firstName"));
firstNameCol.setCellFactory(getCustomCellFactory("green"));

TableColumn lastNameCol = new TableColumn("Last Name");
lastNameCol.setMinWidth(100);
lastNameCol.setCellValueFactory(new PropertyValueFactory<Person, String>("lastName"));
lastNameCol.setCellFactory(getCustomCellFactory("red"));

table.setItems(data);
table.getColumns().addAll(firstNameCol, lastNameCol);

// scene create code vs..

и общееgetCustomCellFactory() метод:

private Callback<TableColumn<Person, String>, TableCell<Person, String>> getCustomCellFactory(final String color) {
        return new Callback<TableColumn<Person, String>, TableCell<Person, String>>() {

            @Override
            public TableCell<Person, String> call(TableColumn<Person, String> param) {
                TableCell<Person, String> cell = new TableCell<Person, String>() {

                    @Override
                    public void updateItem(final String item, boolean empty) {
                        if (item != null) {
                            setText(item);
                            setStyle("-fx-text-fill: " + color + ";");
                        }
                    }
                };
                return cell;
            }
        };
    }
Changing the table column header style:

TableView как и другие элементы управления JavaFX использует встроенную таблицу стилей с именемcaspian.css который связан с jfxrt.jar. Увидетьответ на «JavaFX 2 и CSS классы».
Чтобы изменить стиль шрифта столбца, вы можете переопределить стиль по умолчанию или настроить его:
Перекрытие:

.table-view .column-header{
    -fx-text-fill: -fx-selection-bar-text;
    -fx-font-size: 16;
    -fx-font-family: "Arial";
}

Пользовательская настройка:

#my-custom .table-view .column-header {
    -fx-text-fill: red;
    -fx-font-size: 26;
    -fx-font-family: "Arial";
}

Все эффектыTableViewс в приложении. Поэтому, если вы предпочитаете настраивать, то после определения нескольких стилей вы можете применить пользовательский стиль к любому табличному виду во время выполнения, как,

myTableView.setId("my-custom");
...
// Apply another style at runtime
myTableView.setId("my-custom2");

Чтобы узнать, как определить и загрузить файлы таблиц стилей в приложение, посмотритепост "JavaFX Как установить фоновое изображение сцены".

Однако применение разных стилей к разным столбцам требует больше усилий.

Error: User Rate Limit Exceeded user1332356
Error: User Rate Limit Exceeded
-1

column2 use style 2

Поставка фабрики пользовательских ячеек который поставляетячейки к которым вы применили классы стилей, которые вы определили в css. Связанная документация содержит примеры, которые должны предоставить вам достаточно информации для достижения этой цели.

0

.....

 # .mainFxmlClass {
 -fx-font-family:nyala,Tahoma,Arial,Helvetica,sans-serif;   
 -fx-font-size:1.13em;  
 }

 .label{
 -fx-font-size:1.3em;
  }

и вызовите и используйте .lable или .mainFxmlClass в файле fxml

Похожие вопросы