Имеется один метод, который сохраняет цвет бэкграунда label в файл properties. Цвет выберается из JFoenix Color Picker и сразу же сохраняется в файл properties.
Цвет label сохраняется в таком виде:
Как можно прочитать этот цвет из файла properties и применить его к тому же label?
Это нужно для того,чтобы сохранять все настройки лейбла(цвет, шрифт, название) и при следующей загрузки программы автоматически применить все настройки из файла properties.
Так я сохранял цвет в файл .properties:
@FXML private JFXColorPicker btnPalette;
@FXML void changeCategoryColor(ActionEvent event) throws IOException{
Color selectedColor = btnPalette.getValue();
if (btnPref1.isSelected()) {
category1.setBackground(new Background(new BackgroundFill(Paint.valueOf(selectedColor.toString()), CornerRadii.EMPTY, Insets.EMPTY)));
}
FileInputStream in = new FileInputStream("config.properties");
Properties properties = new Properties();
properties.load(in);
in.close();
FileOutputStream fos = new FileOutputStream("config.properties");
properties.setProperty("categoryColor1", btnPalette.getValue().toString());
properties.store(fos, null);
fos.close();
}
Вот так я попытался взять цвет бэкграунда лейбла из файла .properties и применить его к label:
private void readPropertiesFile() {
try {
File file = new File("config.properties");
FileInputStream fileInput = new FileInputStream(file);
Properties properties = new Properties();
properties.load(fileInput);
fileInput.close();
String color = properties.getProperty("categoryColor1");
Color c = Color.web(color);
Background bg = new Background(new BackgroundFill(c, null, null));
category1.setBackground(color);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Вот здесь возникает ошибка, так как цвет, который я получаю является String: