Как обеспечить гибкость в JavaFXML TreeTableViewJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как обеспечить гибкость в JavaFXML TreeTableView

Сообщение Anonymous »

Проблема заключается в невозможности обеспечить достаточную гибкость для отображения TreeTableView, когда источники данных, необходимые для представления, неизвестны до запуска программы. Моя цель — составить список всех дополнительных устройств хранения данных, подключенных к ПК. До сих пор я следовал предложениям на этой доске и некоторым другим руководствам по реализации TreeTableView. Предложения обычно следуют такому подходу:

Код: Выделить всё

public class HelloController implements Initializable {

@FXML private TreeTableView mytree;
@FXML private TreeTableColumn colFirst;
// TreeItems and Parents
TreeItem parentA = new TreeItem("A");
TreeItem parentC = new TreeItem("C");
TreeItem item1_l2 = new TreeItem("Name_Item1_Level2");
TreeItem item2_l2 = new TreeItem("Name_Item2_Level2");
TreeItem item3_l2 = new TreeItem("Name_Item3_Level2");

TreeItem root = new TreeItem("Root");

@Override
public void initialize(URL location, ResourceBundle resources) {
parentA.getChildren().setAll(item1_l2, item2_l2, item3_l2);
parentC.getChildren().setAll(item1_l2, item2_l2, item3_l2);
root.getChildren().setAll(parentA, parentC);
mytree.setRoot(root);

colFirst.setCellValueFactory(
(TreeTableColumn.CellDataFeaturesparam) -> new SimpleStringProperty(param.getValue().getValue()));

}
}

Фиксированный файл: Результат точно такой, как ожидалось:
Изображение

Однако я считаю, что этот подход ограничен, поскольку невозможно знать, какие устройства подключены и какие буквы дисков связаны с этими устройствами. Поэтому я попытался найти способ решить эту проблему, расширив примеры учебных пособий соответствующим образом:

Код: Выделить всё

public class HelloController implements Initializable {
@FXML private TreeTableView mytree;
@FXML private TreeTableColumn colFirst;
// TreeItems and Parents
TreeItem parentA = new TreeItem("A");
TreeItem item1_l1 = new TreeItem("Dir1A");
TreeItem item2_l1 = new TreeItem("Dir2A");
TreeItem item3_l1 = new TreeItem("Dir3A");

TreeItem parentB = new TreeItem("B");

TreeItem parentC = new TreeItem("C");
TreeItem item1_l2 = new TreeItem("Name_Item1_Level2");
TreeItem item2_l2 = new TreeItem("Name_Item2_Level2");
TreeItem item3_l2 = new TreeItem("Name_Item3_Level2");

TreeItem parentD = new TreeItem("D");
TreeItem parentE = new TreeItem("E");
TreeItem parentF = new TreeItem("F");
TreeItem parentG = new TreeItem("G");
TreeItem parentH = new TreeItem("H");
TreeItem parentI = new TreeItem("I");
TreeItem parentJ = new TreeItem("J");
TreeItem parentK = new TreeItem("K");
// same for drives L thru Z

TreeItem root = new TreeItem("Root");

//  @Override
public void initialize(URL location, ResourceBundle resources) {

File[] paths  = File.listRoots();
for(File path:paths){
if (path.toString().substring(0).equals("A")) {
root.getChildren().set(0, parentA);
parentA.getChildren().setAll(item1_l2, item2_l2, item3_l2);
};
if (path.toString().substring(0).equals("B")) {
root.getChildren().set(0, parentB);
parentA.getChildren().setAll(item1_l2, item2_l2, item3_l2);
};
if (path.toString().substring(0).equals("C")) {
root.getChildren().set(0, parentC);
parentC.getChildren().setAll(item1_l2, item2_l2, item3_l2);
};
// And do similar for the remaining 23 drives
}
mytree.setRoot(root);

colFirst.setCellValueFactory(
(TreeTableColumn.CellDataFeaturesparam) -> new SimpleStringProperty(param.getValue().getValue()));

}
}
Я пытаюсь добиться того же результата, что показано выше, с дополнительной гибкостью в работе с неизвестными устройствами и буквами их дисков. Однако это отображает следующее, чего я не пытаюсь достичь:
Изображение

Я был бы признателен за помощь в выяснении того, что я здесь делаю не так.

Подробнее здесь: https://stackoverflow.com/questions/790 ... etableview
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как обеспечить гибкость в JavaFXML TreeTableView
    Anonymous » » в форуме JAVA
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Java.lang.unsupportedoPerationException: не может определить тип для свойства Javafxml
    Anonymous » » в форуме JAVA
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • Границы и гибкость в CSS
    Гость » » в форуме CSS
    0 Ответы
    14 Просмотры
    Последнее сообщение Гость
  • Как мне выровнять эти кнопки? Существует ли более одного решения этой проблемы? Как мы можем применить гибкость к решени
    Anonymous » » в форуме CSS
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Дисплей: гибкость и ширина: 100 %. Проблема с ul-контейнером, который не расширяется до полной ширины.
    Anonymous » » в форуме CSS
    0 Ответы
    59 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»