terça-feira, 31 de agosto de 2010

Aula 4 - 31.08.2010

Hoje, iremos finalizar a criação do nosso primeiro sistema com inteface gráfica utilizando a API javax.swing.*.

Links interessantes de sites com dicas para melhorar e explorar ainda mais a programação Desktop:

Outros links bastante interessantes:


Sobre persistência de objetovs, o ideal, atualmente, é se trabalhar com um Banco de Dados Relacional (MySQL, Postgresql, Oracle, SQL Server, etc). Porém, este assunto será visto em um momento futuro.

Por ora, para operacionalizar a nossa aplicação, faremos uso da tecnologia XML para persistir nossos objetos da memória RAM para o DISK. Abaixo segue a classe-base necessária para permitir realizar esta ação de forma transparente:

package ipa.es.utils;

import java.io.*;
import java.beans.XMLEncoder;
import java.beans.XMLDecoder;

/** Classe que representa o mecanismo de persistência através de XML. */
public class XMLUtils {

/** Atributo que mantém o nome do diretório dos arquivos .xml. */
private static String dir = "c:/";

/** Método que seta o diretório onde serão salvos os .xml
 * @param String Contendo o nome do diretório. */
public static void setDiretorio(String d) {
 dir = d;
}

/** Método que retorna o diretório onde serão salvos os .xml
 * @return String Retorna o nome diretório. */
public static String getDiretorio() {
 return dir;
}

/** Método que salva o objeto em um arquivo XML.
 * @param objeto Contendo o objeto.
 * @param arq Contendo o nome do arquivo .xml. */
public static void salvar(Object objeto, String arq) throws Exception {
 XMLEncoder xml = null;
 try {
  File f = new File(getDiretorio() + arq);
  xml = new XMLEncoder(
      new BufferedOutputStream(
      new FileOutputStream(f)));
  xml.writeObject(objeto);
  xml.flush();
 } finally {
  if (xml != null) {
   xml.close();
  }
 }
}

/** Método que retorna um objeto a partir de um arquivo XML.
 * @param arq Contendo o nome do arquivo .xml.
 * @return Object Contendo o objeto no XML. */
public static Object buscar(String arq) throws Exception {
 Object objeto = null;
 XMLDecoder xml = null;
 try {
  File f = new File(getDiretorio() + arq);
  if (!f.exists())
   return null;
  xml = new XMLDecoder(
      new BufferedInputStream(
      new FileInputStream(f)));
  objeto = xml.readObject();
 } finally {
  if (xml != null) {
   xml.close();
  }
 }
 return objeto;
}

/** Método para testes. */
public static void main(String args[]) throws Exception {
 String s = "IPA";
 XMLUtils.salvar(s, "Teste.xml");
 System.out.println("Lendo arquivo: " + XMLUtils.buscar("Teste.xml").toString());
}
}

Nenhum comentário:

Postar um comentário