@postya

Как применить background color к лейблу из файла properties в Java программе?

Имеется один метод, который сохраняет цвет бэкграунда label в файл properties. Цвет выберается из JFoenix Color Picker и сразу же сохраняется в файл properties.

Цвет label сохраняется в таком виде:

5ca41724936eb096449814.jpegКак можно прочитать этот цвет из файла 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:

5ca4197c69a8f377959908.jpeg
  • Вопрос задан
  • 108 просмотров
Пригласить эксперта
Ответы на вопрос 2
вы хотели
setBackground(bg);

https://www.programcreek.com/java-api-examples/?cl...
Ответ написан
Комментировать
@postya Автор вопроса
Решение найдено!

private void readPropertiesFile() {

File file = new File("config.properties");
      FileInputStream fileInput = new FileInputStream(file);
      Properties properties = new Properties();
      properties.load(fileInput);
      fileInput.close();

      String colorCategory1 = properties.getProperty("categoryColor1");
      Color c1 = Color.web(colorCategory1);

      Background bg1 = new Background(new BackgroundFill(c1, null, null));

      category1.setBackground(bg1);
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы