/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package testejavadesktop; import java.awt.Image; import java.io.File; import java.util.Vector; /** * * @author Administrator */ public class ArquivosTeste { } //Armazena a imagem e a string com o nome do arquivo class CNota { public String arquivo; public Image imagem; public CNota(String Arquivo, Image Imagem) { arquivo = Arquivo; imagem = Imagem; } public static int NotaPorIndice(int indice) { int[] notas = {1, 2, 5, 10, 20, 50, 100}; return notas[indice]; } } //interface para a classe que disponibiliza todas as imagens de um determinado //valor de nota interface CBaseCImagensNota { public CNota Imagens(int indice); public int NumElementos(); } abstract class CImagensNota extends Vector implements CBaseCImagensNota { public int nota; } class CImagensNotaEmMemoria extends CImagensNota { public CImagensNotaEmMemoria(int Nota, String Pasta) { nota = Nota; File dir = new File(Pasta); String[] children = dir.list(); if (children == null) { // Either dir does not exist or is not a directory } else { for (int i = 0; i < children.length; i++) { try { // Get filename of file or directory String sarq = Pasta + "/" + children[i]; ImageProcessor imgProc = new ImageProcessor(); Image image2 = imgProc.loadbitmap(sarq); Image image = ImageProcessor.toBufferedImage(image2); addElement(new CNota(children[i], image)); } catch (Exception e) { System.out.println("Erro no construtor de CImagensNotaEmMemoria."+ e.getMessage()); } } } } @Override public CNota Imagens(int indice) { return (CNota) elementAt(indice); } public int NumElementos() { return size(); } } class CImagensNotaEmArquivo extends CImagensNota { String[] ListaArquivos; String pasta; public CImagensNotaEmArquivo(int Nota, String Pasta) { nota = Nota; pasta = Pasta; File dir = new File(Pasta); ListaArquivos = dir.list(); } @Override public CNota Imagens(int indice) { if (ListaArquivos != null) { String sarq = pasta + "/" + ListaArquivos[indice]; ImageProcessor imgProc = new ImageProcessor(); Image image2 = imgProc.loadbitmap(sarq); Image image = ImageProcessor.toBufferedImage(image2); return new CNota(ListaArquivos[indice], image); } return null; } public int NumElementos() { return ListaArquivos.length; } } class CArquivosTeste { public CImagensNota[] Imagens; public CArquivosTeste(String PastaBase, boolean EmMemoria) { int[] notas = {1, 2, 5, 10, 20, 50, 100}; Imagens = new CImagensNota[7]; for (int n = 0; n < notas.length; n++) { if (EmMemoria) { Imagens[n] = new CImagensNotaEmMemoria(notas[n], PastaBase + notas[n]); } else { Imagens[n] = new CImagensNotaEmArquivo(notas[n], PastaBase + notas[n]); } } } public int NumNotas() { return 7; } public CImagensNota ImagensNota(int indice) { return Imagens[indice]; } }