Salvar preferências

3 respostas
R

Olá!

Quero desenvolver uma aplicação que salve alguns dados de configuração e ao ser novamente aberta, mantenha os dados.
Para isso criei uma classe com todos os dados que quero salvar, utilizo ela dentro de minha aplicação para setar e buscar os dados pra lá e pra cá sempre que necessário. Agora na parte de salvar, pensei em usar serialização para salvar em um arquivo qualquer xml e depois remontar a classe ao iniciar o programa.

Alguém tem alguma sugestão melhor, ou mesmo um exemplo simples (simples mesmo) de como fazer serialização e deserialização em xml?
(não, ainda não busquei conteúdo a respeito de como fazer isso em java. Não entendam mal, eu to postando pra saber se tem alguma maneira melhor que essa pra fazer isso, a idéia não é aprender a fazer as coisas, mas claro que algumas indicações de links sempre ajudam :smiley: )

3 Respostas

fiaux

Usar o banco de dados ou um arquivo properties também não ajudaria?

R

banco de dados não, mas esse arquivo properties me interessa…
vou ver se acho alguma coisa, obrigado!

S

Eu uso o Commons http://commons.apache.org/ e é bem fácil.

Crio o arquivo de propriedades

public static void createPropertiesFile(){
        _config = new XMLConfiguration();

        File file = new File(System.getProperty("user.home")+File.separator+"Config.xml");
        try {
            if ( !file.exists()) {
                file.createNewFile();
                _config.setFile(file);
                _config.setRootElementName("Empresa");
                _config.setAutoSave(true);

                ArcProperties.getConfigProperties().setProperty("Sistema",  "Money");
            }else{
                _config.setFile(file);
                _config.setRootElementName("Empresa");
                _config.setAutoSave(true);
                
            }

        } catch (Exception e) {
            new ApplicationException(e);
        }
        
        try{
        	_config.load();
        }catch(ConfigurationException ex){
        	file.delete();
        	createPropertiesFile();
        }
        
    }

Método de acesso

public static XMLConfiguration getConfigProperties() {
        return _config;
    }

Gravo assim

public static void saveTable(String key, JTable table) {

        for( int x = 0; x < table.getColumnCount(); x++){
            TableColumn tbcol = table.getColumnModel().getColumn(x);
            getConfigProperties().setProperty(key+".Coluna_"+(new Integer(x)).toString(), new Integer(tbcol.getWidth()) );
        }
    }

Leio assim

public static void getSavedTable(String key, JTable table) {
        for( int x = 0; x < table.getColumnCount(); x++){
            Integer i = null;
            TableColumn tbcol = table.getColumnModel().getColumn(x);
            try{
                i   = new Integer(getConfigProperties().getInt(key+".Coluna_"+(new Integer(x)).toString()));
                tbcol.setPreferredWidth(i.intValue());
            }catch(NoSuchElementException e1){
                return;
            } catch (Exception e) {
                new ApplicationException(e);
            }
        }
    }

E tenho um get e um set para cada tipo de propriedade que quero guardar, como datas, dimensões de janelas, etc.

Espero que tenha ajudado.

Sannon

Criado 7 de julho de 2008
Ultima resposta 7 de jul. de 2008
Respostas 3
Participantes 3