Проблема JavaFX Treeview WordWrap

Я делаю очень простой пользовательский интерфейс, используя TreeView, но я не могу понять, как сделать так, чтобы текст обтекал его, чтобы он не выпадал из поля зрения. Я пробовал использовать CSS, но это не имеет никакого значения. Если я применяю CSS к любому другому объекту, он работает, поэтому я уверен, что правильно импортировал таблицу стилей. В качестве примечания, есть ли место, где перечислены все возможные функции CSS? Я всегда изо всех сил пытался понять, какие параметры я могу применить к объекту.

  public static TreeView DataTreeView; //this is from my FXML


  public static void TreePopulate(){

    TreeItem<String> rootItem = new TreeItem<String>("Data");

    TreeItem<String> DataNode = new TreeItem<String>("Data about the leaf offset etc");

    //this is the line that goes off screen
    TreeItem<String> DataLeaf = new TreeItem<String>(" lots of data dbabdbwdbawbdawbdbawb ewqeweqwe qweqweqw qeqweqwe "); 


    rootItem.getChildren().add(DataNode);
    DataNode.getChildren().add(DataLeaf);


    DataTreeView.getStyleClass().add("wordwrap");
    DataTreeView.setRoot(rootItem);



}

.wordwrap{
 -fx-wrap-text: true;

}

person Greg King    schedule 09.02.2014    source источник


Ответы (1)


В свой файл css вы можете добавить

.tree-cell .label {
    -fx-wrap-text: true;
}

Справочник по css можно найти здесь http://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html

Вы можете увидеть текущие настройки, просмотрев caspian.css в вашем файле jfxrt.jar или просто используя Google, чтобы найти его в Интернете.

Вы также можете использовать .setCellFactory, чтобы указать, как создаются ячейки. Я использую TextFields для редактирования, но я просто изменил его на TextArea, и это тоже работает нормально, за исключением небольшой проблемы с нажатием клавиши ввода, но это легко исправить.

person brian    schedule 09.02.2014