2015-04-18 2 views
-1

Мне нужно написать метод, который получит мою строку (показывая часы, разделенные запятыми), и возвращает ListProperty of Strings. В моем конструкторе у меня естьОтключенная от запятой строка для ListProperty

this.showingHour = new SimpleListProperty<String>(); 

Я хотел бы использовать метод из этой темы: https://stackoverflow.com/a/7488676/4750111

List<String> items = Arrays.asList(str.split("\\s*,\\s*")); 

Но это будет создавать ArrayList. Есть функция вроде этого, но для ListProperty?

ответ

1

Вы можете сделать

ListProperty<String> list = new SimpleListProperty<(
     FXCollections.observableArrayList(str.split("\\s*,\\s*"))); 

Как и в сторону, вы действительно нуждаетесь в ListProperty? Я никогда не нашел для этого пользы; Я нахожу только использование регулярного ObservableList, и регистрации слушателей с ним достаточно. Аргументы SimpleListProperty выше, т.е.

FXCollections.observableArrayList(str.split("\\s*,\\s*")) 

дает наблюдаемый список с элементами вам нужно.

+0

Спасибо, мне пришлось изменить объявление в this.showingHour = new SimpleListProperty (FXCollections.observableList (новый ArrayList ())); и затем выполните разделение – Paus

1

Как насчет:

ListProperty<String> lp= new ListProperty<>(); 

lp.addAll(Arrays.asList(str.split("\\s*,\\s*"))); 
+0

Когда я пытаюсь это сделать, я получаю «java.lang.UnsupportedOperationException» .. – Paus

+0

С какой строки - добавление или создание? – Kuba

+0

Добавление. Я получаю String для разделения от другого метода на «getText» – Paus