Я постараюсь сделать свой пост максимально коротким;
Вот мой custom Object
public class ListItem {
ListItem(String text){
this.text = text;
}
final String text;
final ObjectProperty<Font> font = new SimpleObjectProperty<>();
final ObjectProperty<Color> color = new SimpleObjectProperty(Color.BLACK);
}
Это объект для хранения: String, Color, Font/int
(япросто нужен размер шрифта, может при необходимости изменить его на int)
Используя его, я создал ListView<ListItem>
.
Теперь я могу заполнить этот ListView<ListItem>
клеткой, которая является ListItem
с использованием CellFactory
.Это похоже на это .
Пока здесь - все работает. (Приведенный выше код и объяснение для лучшего понимания того, что я пытаюсь сделать)
но сейчас я не знаю, как сделать следующее:
- Сохранение
ListView
-контента в file
.Или немного яснее;Как я могу взять все содержимое моего ListView, заполненного пользовательскими объектами, при сохранении всех их свойств (String, Color, Int)?
Небольшой пример того, как я представляю, что датьВы лучше идея:
"entry_1":
text: "entry text goes here"
color: "web color code goes here (e.g. #ff4d4d)"
fontsize: "16"
"entry_2":
...
Обновление
Я настроил цикл, я думаю, он должен работать нормально, но это дает мне ошибки;
Мой файл / его путь:
private final String saveLoc = System.getenv("ProgramFiles")
+ File.separator
+ "simpleNotizen"
+ File.separator
+ "simpleNotizen.properties";
private final File save = new File(saveLoc);
Как я это называю:
if(!save.exists()){
save.getParentFile().mkdirs();
save.createNewFile();
}
Ошибка (выдается save.createNewFile();
):
Caused by: java.io.IOException: The System can't find the given Path
(Или что-то похожее, пришлось перевести это)
Я действительно не понимаю, почему выдается ошибка, я пробовал FileWriter, OutputStream, File, но каждый раз та же ошибка ..
Я такжепопытался дать sysout, который выглядит совершенно нормально:
C:\Program Files\simpleNotizen\simpleNotizen.properties
Решено
Если кому-то интересно, как я это исправил, вот оно
Для сохранения моего ListView
контента я написал цикл, который повторяется по количеству записей в ListView;
for (int i = 0; i < listSize; i++) {
prop.setProperty("entry_" + Integer.toString(i),
listView.getItems().get(i).text
+ "|"
+ listView.getItems().get(i).color.getValue()
+ "|"
+ listView.getItems().get(i).font.getValue().getSize()
);
}
Появляется моя вторая проблемаd быть проблемой с правами доступа C:\Program Files\
-Path, исправил ее, заменив w / APPDATA