Salvando preferências e configurações em uma aplicação Java Desktop

A classe java.util.prefs.Preferences permite que aplicações salvem configurações e preferências. A classe possui dois tipos de preferências: do usuário e do sistema. Cada usuário poderá ter suas próprias preferências de forma independente dos demais usuários. Já as preferências de sistema são iguais para todos os usuários.

Vamos ver um exemplo, salvando o nome do usuário e a configuração de fonte preferida.

Para salvar:

public void save() {
    saveDate = LocalDate.now();
    Preferences userPreferences = Preferences.userRoot();
    userPreferences.put(USERNAME_PROPERTY, username);
    userPreferences.put(FONT_FAMILY_PROPERTY, font.getFamily());
    userPreferences.putDouble(FONT_SIZE_PROPERTY, font.getSize());
    userPreferences.put(SAVE_DATE_PROPERTY, saveDate.format(DATETIME_FORMATTER));
}

Para carregar as preferencias:

public void load() {
    Preferences userPreferences = Preferences.userRoot();
    username = userPreferences.get(USERNAME_PROPERTY, "");
    String fontFamily = userPreferences.get(FONT_FAMILY_PROPERTY, DEFAULT_FONT_FAMILY);
    Double fontSize = userPreferences.getDouble(FONT_SIZE_PROPERTY, DEFAULT_FONT_SIZE);
    font = Font.font(fontFamily, FontWeight.NORMAL, fontSize);
    String date = userPreferences.get(SAVE_DATE_PROPERTY, DEFAULT_SAVE_DATE);
    saveDate = LocalDate.parse(date, DATETIME_FORMATTER);
}

Vamos então chamar o load(), carregando as preferências com valores padrão, imprimir os valores, alterar os valores e salvar:

PreferencesDemo preferencesDemo = new PreferencesDemo();
preferencesDemo.load();
preferencesDemo.print();
preferencesDemo.setUsername("Matruskan");
preferencesDemo.setFont(Font.font("Arial", 12));
preferencesDemo.save();

 

Veja o código completo aqui: https://github.com/matruskan/preferencesdemo

Na primeira vez que rodar, as configurações virão com os valores padrão:

Username:    
Chosen Font: System 14.0
Saved at:    2013-08-13

Na segunda vez, as configurações alteradas serão obtidas:

Username:    Matruskan
Chosen Font: Arial 12.0
Saved at:    2018-06-03
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.