Blogger templates

Comunidade java aberto - Participe da nossa comunidade no facebook (clique aqui)

Visitas

segunda-feira, 1 de julho de 2013

DJ Swing

,

Olá galera,
Nesse post vou deixar o código-fonte do DJ Swing que na verdade contém vários utilitários de softwares pra imbutir dentro do nosso projeto atraves do Swing. Lembrando que está funcionando, funfando legal.

Pesquisei durante meses algo que funcionasse, mas nada de resultado, até a hora que fiquei nervoso e fiquei até conseguir algo, mas não consegui, apenas o código-fonte do proprio site, mas ainda mesmo assim @!#@!#!, nao consegui deixar 100%, até que tive que alterar várias configurações, e cabum.. funcionando legal. hhahaaha *-*

Você pode rodar videos, interagir sua aplicação Flash com o Java dentro do swing, usando browser profissional, Editor HTML, editor de Sintaxes de Linguagens de Programação (C++, C#, css, Delphi, Java, JS, PHP, Python, Ruby, SQL, VB, XML, HTML), enfim..

Baixem ai.



Isso é um imagem com a lista do que ele pode ter em seu projeto.




Continue lendo

sábado, 22 de junho de 2013

Pega dados do Computador (2.0)

,

Olá bom dia a todos,
estava precisando de pegar algumas informações do meu cliente pra eu poder gerar um chave de licença bem elaborada, e combater a anti-pirataria do meu sistema, e pra isso precisei criar uma classe onde pudesse pegar alguns dados do computador.

Versao 1.0







Continue lendo

domingo, 9 de junho de 2013

Utilizando o banco Derby de forma portável

,


Utilizando o banco Derby de forma portável

Introdução

Em algumas situações desenvolvemos aplicações de pequeno porte onde queremos utilizar um banco de dados, mas não temos interesse em instalar um SGBD em cada computador que for rodar minha aplicação. Um banco de dados que pode ser usado sem a necessidade de ser instalado é o Apache Derby (a Sun Microsystems utiliza esse mesmo banco de dados com o nome de JavaDB, não sei ao certo a relação entre eles), que é implementado 100% em Java, o que se torna uma excelente opção para aplicações portáveis que utilizam banco de dados e são feitas em Java.
Existem duas formas de se acessar um banco de dados no derby, são elas:
Conexão embarcada: realiza uma conexão diretamente no arquivo da base de dados, por esse motivo não é possível criar mais de uma conexão simultaneamente para a mesma base de dados.
Conexão via serviço de rede: mesmo utilizando o SGBD derby como um banco portável é possível inicializar o serviço de rede sem realizar uma instalação, isso pode ser feito diretamente pelo código, ou pela linha de comando de um terminal, seja (L)unix ou windows.

Requisitos

Os requisitos aqui apresentados se referem a este post, nada impede criar uma aplicação em outra linguagem e utilizar um drive de conexão para o derby.
* Sua aplicação deve ser feita utilizando Java;
* baixar o arquivo: db-derby-v.x.y.z-lib.zip
- derby, derbyclient, derbynet, derbyrun: obrigatórios para executar sua aplicação
- derbytools: jar para executar funções auxiliares do banco de dados, como por exemplo ver info do Derby
- derby_LOCALE_LANGUAGE: adicione sua linguagem para sua aplicação para que o derby possa mostrar as mensagem traduzidas
* Uma JVM instalada no computador cliente

Iniciando o banco de dados derby

Se você for utilizar a conexão embarcada não é necessário iniciar o Apache Derby, uma vez que esse modo não acessa via serviço. Caso contrário você pode iniciar o banco pela linha de comando, utilizando:java -jar derbynet.jar start
Quando você inicializar o banco pela linha de comando o derby automaticamente irá procurar pela variável de ambiente DERBY_HOME que indica a pasta onde ficam guardados as bases de dados a serem acessadas, no linux você pode definir essa variável através do comando export DERBY_HOME=/home/diretorio, pelo windows, pode-se definir essa variável através Propriedades do Sistema->Avançado->Variáveis de ambiente.
Se preferir, você pode inicializar o banco derby diretamente pelo código de sua aplicação derby, basta inserir as seguintes linhas de código na sua aplicação:
try {
//Aqui você também pode utilizar um caminho relativo, porém lembre-se de que esse
//caminho inicia no mesmo diretório onde você iniciou a aplicação.
System.setProperty("derby.system.home", "/home/usuario/derby");
NetworkServerControlImpl networkServer = new NetworkServerControlImpl();
networkServer.start(new PrintWriter(System.out));
System.out.println("Conectado ao banco de dados.");
} catch (Exception ex) {
System.out.println("Não conseguiu conectar no banco de dados.");
}
Lembre-se de adicionar ao classpath os arquivos jar necessários para sua aplicação.
Caso a variável de ambiente DERBY_HOME não esteja definida (vale tanto para a inicialização via código quanto para a inicialização via terminal) o derby irá procurar automaticamente por base de dados localizadas na pasta de onde você iniciou a aplicação ou executou o comando de iniciar o derby.

Links

Site oficial: http://db.apache.org/derby/
Manual: http://db.apache.org/derby/manuals/index.html
Download: http://db.apache.org/derby/derby_downloads.html#Latest+Official+Release


(fonte: paulocanedo)
Abaixo segue a conexão completa para uso, só adaptarem...

Continue lendo

sexta-feira, 7 de junho de 2013

Criando XML com Java

,

Bom dia, galera..

Segue o código de como criar um arquivo XML com Java.


O XML é uma norma que define uma linguagem padrão para a representação de informação independentemente das tecnologias. XML è um presente por aqui trabalha na integração de sistemas pela sua portabilidade, já que é um formato que não depende das plataformas de hardware ou de software.
Como podemos criar un xml com java? Por exemplo:
<?xml version=”1.0″ encoding=”UTF-8″ standalone=”no”?>
<empresa>
<empregado id=”1″><nome>Jose</nome><apelido>joao moriumba</apelido><nickname>jmoriumba</nickname><salario>100000</salario>
</empregado>
<empregado id=”2″><nome>Luis Maria</nome><apelido>Pedro</apelido><nickname>lpedro</nickname><salario>124000</salario>
</empregado>
</empresa>
1- import package
import java.io.StringWriter;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
2- Criar root element
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
//root elements
Document doc = docBuilder.newDocument();
Element rootElement = doc.createElement(“empresa”);
doc.appendChild(rootElement);
3- Criar element filho
// empresa elements
// Empregado Jose Joao Moriumba
Element empregado = doc.createElement(“empregado”);
rootElement.appendChild(empregado);
// set attribute to empregado
Attr attr = doc.createAttribute(“id”);
attr.setValue(“1″);
empregado.setAttributeNode(attr);
4- // escrever  content numa String “xml”
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
StringWriter stringWriter = new StringWriter();
StreamResult result = new StreamResult(stringWriter );
// Output to console for testing
// StreamResult result = new StreamResult(System.out);
transformer.transform(source, result);
System.out.println(stringWriter.toString());


Continue lendo

quinta-feira, 6 de junho de 2013

Java com Flash

,

Olá boa tarde galera,

Essa semana tive um problema muito grande, tive que criar um jogo estilo O Ultimo Passageiro da Rede TV para uma emissora local aqui da região.

O problema seria integrar aqueles Menus milaburosos da tv feito em Flash ou After Effects em Java, ou seja, integrar uma animação em tempo real.

Foi dificil encontrar como integrar o Flash com Java, cacei quase todos os dias do desenvolvimento e no ultimo dia faltando 1 hora pra entregar o projeto eu encontrei, que sufoco!!! ufa!!

Segue aqui pra vc's.
Para integrar o texto do banco de dados com a animação em tempo real tive que criar um XML para se comunicar com o Flash, ai funfa!!

The DJ Project
Rediscover the Desktop
Continue lendo

terça-feira, 28 de maio de 2013

NEW Video Aula - Criando Servidor RMI Profissional

,

Olá bom dia galera..

Por enquanto antes de eu criar a vieo-aula vou deixar o codigo fonte e depois explico passo-a-passo no video...



Classe Servidor


Interface do Servidor


Arquivo de politicas

Grave em um arquivo txt

servidor.policy


grant{
permission java.security.AllPermission;
}
Continue lendo

domingo, 14 de abril de 2013

sexta-feira, 1 de março de 2013

Aplicação na barra de tarefas

,

Olá galera,
Ontem estava pesquisando sobre como colocar aplicação na barra de tarefas, mas os resultados nao foram tao animador,
muito complicado o conceito, eu ja tinha feito um código simpes antigamente, porém ruizinho..

Então hoje desenvolvi uma classe que faz isso automaticamente e com duas linhas de código você ja consegue implantar isso no seu sistema.



como usar:



Continue lendo

quarta-feira, 20 de fevereiro de 2013

Criando Servidor RMI

,

Nessa vídeo aula, vamos aprender a como criar um servidor em RMI de maneira simples, fácil e correto.
Vamos abordar detalhadamente cada comando e os possíveis erros de implantação.

Nos próximos vídeos vamos abordar a como comunicar nosso cliente com nosso servidor e como outras interações entre eles.

Desculpas pelos erros.


Parte 1

Parte 2


;]
Continue lendo

sexta-feira, 1 de fevereiro de 2013

Curso Java Básico Online - RL System

,


Neste curso de Java Básico Online, será abordado os conceitos básico da plataforma Java, desde a criação de classes, métodos e atributos. Iremos aprender a utilizar a IDE Eclipse e NetBeans. Aprenda a programar na plataforma que mais cresce no mundo.


Curso de Java Básico Online
Continue lendo

sexta-feira, 11 de janeiro de 2013

Habilitando a conexão remota no sql server 2008

,


E ai pessoas, como tenho recebido alguns e-mails pedindo para mostrar “como fazer para que outros computadores acessem o meu banco de dados” e “habilitar o acesso remoto do SQL Server 2008”, então vamos à demonstração!
Antes de começar, se o servidor estiver fora de um “domínio” ou você não saiba o que é “domínio”, dê uma olhada neste artigo:
http://sqlfromhell.wordpress.com/2009/05/24/habilitando-sql-authentication-e-o-usuario-sa/
Em seguida, habilitamos o Firewall do Windows (permitindo exceções). Mas para ambientes de teste não há problema em deixá-lo desabilitado.
Dentre as diversas exceções, adicionamos mais uma porta:
Para boa parte dos cenários, a porta TCP 1433 já vai suprir as necessidades:
Em outros cenários mais específicos, pode existir a necessidade de habilitar as portas UPD 1434, TCP 1434 e outras (at. http://msdn.microsoft.com/en-us/library/ms175483.aspx  ).
No SQL Server Management Studio, verifique se nas propriedades do servidor esta habilitada a opção “Allow remote connections to this server”. Caso não esteja habilitada, será necessário habilitá-la.
No SQL Server Configuration Manager, mais precisamente nos protocolos da sua instância (ex.: SQLEXPRESS, SQL2005, MSSQLSERVER…), entre nas propriedades do protocolo TCP/IP:
E habilite o protocolo TCP/IP. Em alguns cenários também se faz necessário habilitar o protocolo “Named Pipes”.
E recomendo definir a porta de conexão:
Se você quiser configurar outras portas para o SQL Server, dê uma olhada neste artigo:
http://sqlfromhell.wordpress.com/2009/09/05/portas-sql-server/
Reinicie o serviço do SQL Server da sua instância e o SQL Server Browser, depois em uma máquina cliente, tente se conectar ao servidor com um usuário válido:
Se tudo ocorrer como previsto, teremos a conexão:
Bem, estou usando uma VM “zerada” que até o momento tem o Windows Server 2003 R2 e o SQL Server 2008, assim existe grande possibilidade de não funcionar em outros cenários.
Pontos a levar em consideração para tratar outros cenários:
  • Se você não conseguir ao menos dar um “ping” ou compartilhar uma pasta do servidor à rede ou conectar remoto com o Remote Desktop Connection (mstsc.exe), isso pode ser sinal que tem algo errado com o firewall ou a rede ou até mesmo com o Windows (então não é culpa do SQL Server, ainda…).
  • Programas de Antivírus ou Firewall de terceiros, também são grandes culpados por problemas com o acesso remoto, tanto no servidor como no cliente.
  • O usuário que você esta utilizando para se conectar pode não ter permissão para se conectar ou o servidor não esta no domínio (at. http://sqlfromhell.wordpress.com/2009/05/24/habilitando-sql-authentication-e-o-usuario-sa/ ). Para “testar”, no servidor tente se conectar ao SQL Server com o usuário que você esta utilizando na máquina cliente.
  • Para “testar”, não utilize o SQL Server Management Studio 2005 para se conectar a um SQL Server 2008, pois algumas vezes isso não dá muito certo.
Mais uma coisa, se eu não responder um comentário em 24h é sinal que não estou com acesso à internet, pois possivelmente estarei preso na ilha de LOST (probabilidade 0,001%) ou estou numa “missão” extraordinária pelo Exército Brasileiro (probabilidade 4%) ou estou apagando algum incêndio em alguma consultoria (probabilidade 85%) ou dedicado a algum trabalho acadêmico (probabilidade 10%), então também vale a pena procurar os fóruns do MSDN e/ou o suporte da Microsoft.
Na internet, encontrei outros dois artigos bons sobre o assunto:
Instalando e Configurando o SQL Server 2005 Express – Nilton Pinheiro:
http://www.mcdbabrasil.com.br/downloads/install_sqlexpress.pdf 
Como configurar Conexão Remota no SQL Server 2005 – Diego Nogare:
http://www.linhadecodigo.com.br/artigo/1260/como-configurar-conexao-remota-no-sql-server-2005.aspx 
Continue lendo

sexta-feira, 28 de dezembro de 2012

Sockets

,

Olá, vou tentar explicar um pouco de sockets em java
primeiramente vou apresentar o conceito de o que é esse
tal sockets.

Bem um socket é um canal de comunicação dentre duas míquinas
por determinadas aplicações comunicando entre si.
Em uma conexão de socket sempre existe um computador servidor
e outro computador cliente.
O computador servidor ele tem a função de abrir determinada porta
de comunicação, escutando (LISTENING), até que alguém, míquina cliente, 
tente fazer alguma conexão.

Para simplificar vou apresentar os métodos que uma míquina cliente tem que
executar.

1-Cria a conexão, cria um socket com algum servidor.
2-Cria um fluxo de comunicação no socket.
3-Utiliza o fluxo, conversa com a outra míquina.
4-Fecha o fluxo.
5-Fecha o socket.

Agora para uma míquina servidora os métodos mudam um pouco.

1-Cria um socket de escuta (LISTENING), em uma determinada porta.
2-Processa requisições de conexões, cria o socket com a míquina cliente.
3-Processa pedido de fluxo.
4-Utiliza o fluxo, conversa com a outra míquina.
5-Fecha o fluxo.
6-Fecha o socket.

Outra definição importante é referente a portas que são (ligações)
para conexões do seu computador para uma rede externa a ele (saàda) 
ou de uma rede externa para ele (entrada). 
Só existe compartilhamento, ou comunicação entre dois computadores, 
quando e houver conexões de entrada e saàda estabelecidas 
entre os dois computadores, através de uma determinada porta do computador 
de origem, à uma porta do computador de destino do compartilhamento.

Em java é possàvel executar dois tipos de conexões, modo baseado em conexão
e o sem conexão.

O modo baseado em conexão é algo parecido com uma padaria você pega o bilhete
e pega o pão, você confere para ver se é o pão que requisitou no bilhete e 
pronto. (TCP/IP)

http://www.juliobattisti.com.br/artigos ... pip_p1.asp 

O modo sem conexão é um pouco mais desorganizado, você entra na padaria e recebe
uma determinada quantidade de pão, doces, etc. Você que se vire com o que quer. (UDP)

http://www.juliobattisti.com.br/artigos ... ip_p11.asp 

Não vou entrar em detalhes sobre como fazer uma socket com conexão UDP, é algo
muito parecido com a conexão TCP/IP. Mas para quem quiser dar uma olhada, um breve
tutorial.

http://www.dca.fee.unicamp.br/cursos/Po ... k/udp.html 

Em java é extemamente simples criar um socket, vamos dar uma olhada nos construtores
das classes para uma simples conexão TCP/IP do lado do cliente.

Socket(String, int) - Nome do computador (Servidor) e a porta de comunicação.
Socket(String, int, boolean) - Nome do computador (Servidor), e a porta de comunicação,
e se o socket é com fluxo (true) TCP/IP ou não (false) UDP.

Socket(InetAddress, int) - O endereço Internet e a porta para conexão.
Socket(InetAddress, int, boolean) - O endereço da Internet (Servidor), e a porta de comunicação,
e se o socket é com fluxo (true) TCP/IP ou não (false) UDP.

Agora alguns métodos para a utilização de sockets, do lado cliente.

OutputStream getOutputStream() - Retorna a saida de fluxo do socket.
InputStream getInputStream() - Retorna o entrada de fluxo do socket.
InetAdress getInetAdress() - Retorna o InetAdress relacionado ao socket.
int getLocalPort() - Retorna a porta aberta para o socket.
close() - Fecha o socket.

Agora do lado servidor temos algumas mudanças, constutor necessírio para a conexão.

ServerSocket(porta) - Porta que ficarí em escuta (LISTENIG).

Os métodos mais bísicos.

accept() - Aguarda conexão em determinda porta coloca
em escuta (LIsTENING).
close() - Fecha o socket.

E como no lado cliente temos a classe Socket, só que do lado servidor
ele apenas pega o canal de comuniação. Ele faz isso quando aceita uma conexão 
usando o método accept(), que retorna um Socket. Esse socket jí é o canal 
de comunicação com a míquina cliente. Ou seja, também usaremos a classe 
Socket no servidor.

Agora alguns métodos para a utilização de sockets, do lado cliente.

OutputStream getOutputStream() - Retorna a saida de fluxo do socket.
InputStream getInputStream() - Retorna o entrada de fluxo do socket.
InetAdress getInetAdress() - Retorna o InetAdress relacionado ao socket.
int getLocalPort() - Retorna a porta aberta para o socket.
close() - Fecha o socket.

Agora que sabemos como conectar duas míquinas, vamos enviar e receber dados.

Para facilitar o envio e o recebimento de dados temos as classes BufferedReader e
PrintWriter.

O constutor padrão das classes recebem InputStream e OutputStrem com parâmetro, 
respectivamente. 

O construtor padrão para a classe BufferedReader.

BufferedReader(InputStreamReader(InputStream)) - Fluxo de comunicação.

Alguns métodos importantes da classe BufferedReader.

readLine() - Retorna uma String.
read() - Retorna um único caractere.
close() - Fecha o fluxo.

O construtor padrão para a classe PrintStream.

PrintStream(OutputStream) - Fluxo de comunicação.

Alguns métodos importantes da classe PrintStream.

println() - Envia uma String.
write() - Envia um byte.
close() - Fecha o fluxo.

Bem a seguir os códigos das aplicações.

Código da aplicação cliente:

Código:
/*
 * Main.java
 *
 * Created on 11 de Julho de 2007, 00:47
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package cliente;

//Importa pacotes para a criação de fluxos.
import java.io.*;
//Importa pacotes para a criação de sockets.
import java.net.*;


public class Main {
    
    /** Cria uma nova instância de Main */
    public Main() {
    }
    
    /**
     * @param args argumentos da linha de comando
     */
    public static void main(String[] args) {
        try {
            //Crio um socket
            Socket socket = new Socket("127.0.0.1", 606);
        
            //Crio o fluxo para o envio de dados
            OutputStream saida = socket.getOutputStream();            
            PrintStream escrita = new PrintStream(saida);
            
            if(args.length > 0) {
                //Envio a string passada
                escrita.println(args[0]);
                
            } else {
                escrita.println("Alucard");
            } 
            
        //Caso não encontre o host    
        } catch (UnknownHostException ex) {
            ex.printStackTrace();
        //Caso ocorra alguma exceção na criação do fluxo
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        
    }
}
Código da aplicação servidor:

Código:
/*
 * Main.java
 *
 * Created on 11 de Julho de 2007, 01:45
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package servidor;

//Importa pacotes para a criação de fluxos.
import java.io.*;
//Importa pacotes para a criação de sockets.
import java.net.*;

public class Main {
    
    private ServerSocket server;
    private Socket socket;
    private InputStream entrada;
    private BufferedReader read;
    
    /** Cria uma nova instânica de Main */
    public Main() {
        try {
            //Abre uma prota para escuta (LISTENING)
            server = new ServerSocket(606);            
            
            //Imprime a Mensagem "Servidor aguardando conexao."
            System.out.println("Servidor aguardando conexao.");
            
            //Aguarda e cria a uma conexão
            socket = server.accept();
            
            //Cria um fluxo de entrada
            entrada = socket.getInputStream();
            read = new BufferedReader(new InputStreamReader(entrada));
            
            //Imprime o que veio na entrada
            System.out.println(read.readLine());
            
            //Fecha o fluxo o socket e o serverSocket
            read.close();
            socket.close();
            server.close();            
            
        //Caso ocorra alguma exeção na criação do fluxo.
        } catch (IOException ex) {
            //Imprimi o que aconteceu de erro
            ex.printStackTrace();
        }        
    }
    
    /**
     * @param args argumentos da linha de comando
     */
    public static void main(String[] args) {
        //Chama o método construtor na classe
        new Main();
    }
    
}
Bom a aplicação apenas cria um socket na escuta, enquanto outra 
aplicação tenta fazer uma conexão, enviando uma frase caso informe 
na linha de comando a frase serí mostrada no lado servidor.
Continue lendo

quarta-feira, 26 de dezembro de 2012

Usando ArrayList

,



  1. import java.util.ArrayList;  
  2. import java.util.Arrays;  
  3. import java.util.Collection;  
  4. import java.util.Collections;  
  5. import java.util.Iterator;  
  6. import java.util.LinkedList;  
  7. import java.util.List;  
  8.   
  9. public class ExemploLista {  
  10.    public static void main(String[] args) {  
  11.        //Primeiro criamos um ArrayList.   
  12.        List<String> umaLista = new ArrayList<String>();  
  13.          
  14.         //Para adicionar elementos ao final da lista, usamos o método add  
  15.         umaLista.add("Vinícius");  
  16.         umaLista.add("De");  
  17.         umaLista.add("Mendonça");  
  18.         imprime("Após adicionar os primeiros elementos", umaLista);  
  19.   
  20.         //Também podemos adicionar um elemento numa posição qualquer da lista  
  21.         umaLista.add(1, "Godoy");  
  22.         imprime("Após adicionar Godoy na posição 1", umaLista);  
  23.   
  24.         umaLista.add("Garcia");  
  25.         umaLista.add("Menezes");  
  26.         imprime("Após adicionar Garcia e Menezes na lista", umaLista);  
  27.   
  28.         //Podemos obter o tamanho da lista chamando o método size()  
  29.         System.out.println("O tamanho da lista é: " + umaLista.size());  
  30.           
  31.         //Podemos acessar um elemento da lista usando get. Note que o índice das  
  32.         //listas começa em 0.  
  33.         System.out.println("O 4º elemento da lista, de índice 3 é: " + umaLista.get(3));  
  34.           
  35.         //Podemos ver se existe um determinado valor na lista  
  36.         if (umaLista.contains("Godoy"))  
  37.             System.out.println("Godoy está lá!");  
  38.         else  
  39.             System.out.println("Godoy não está lá!");  
  40.           
  41.         if (umaLista.contains("Braga"))  
  42.             System.out.println("Braga está lá!");  
  43.         else  
  44.             System.out.println("Braga não está lá!");  
  45.           
  46.         //Podemos descobrir qual é o índice de um elemento da lista  
  47.         int indiceDe = umaLista.indexOf("De");  
  48.         System.out.println("O índice de 'De' é:" + indiceDe);  
  49.   
  50.         //Dá também para remover um elemento da lista com remove  
  51.         umaLista.remove("Garcia");  
  52.         imprime("Removemos Garcia", umaLista);  
  53.   
  54.         //Remove também aceita um índice!  
  55.         umaLista.remove(umaLista.size()-1); //Remover o último elemento  
  56.         imprime("Removemos a lista na posição " + (umaLista.size()) + ": ", umaLista);  
  57.   
  58.         //Podemos ordenar a lista, desde que a classe dentro dela seja Comparable:  
  59.         Collections.sort(umaLista);  
  60.         imprime("Lista ordenada", umaLista);  
  61.   
  62.         //É possível criar cópias da lista em praticamente qualquer estrutura:  
  63.         List<String> outraLista = new LinkedList<String>(umaLista);   
  64.         imprime("Impressão da outra lista", umaLista);  
  65.         outraLista = null;  
  66.   
  67.         //Podemos também remover todos os elementos da lista  
  68.         umaLista.clear();  
  69.   
  70.         //Podemos criar uma versão imodificável da lista  
  71.         outraLista = Collections.unmodifiableList(umaLista); //Não é uma cópia!  
  72.         try {  
  73.            outraLista.add("Menezes de Barros");  
  74.         } catch (UnsupportedOperationException e) {  
  75.            System.out.println("Ops... não dá para inserir!");  
  76.         }  
  77.           
  78.         //Podemos transformar um arrayQualquer numa lista  
  79.         String[] frutas = new String[] {"Banana", "Maçã", "Banana", "Laranja", "Banana"};  
  80.         List<String> listaFrutas = Arrays.asList(frutas);  
  81.         imprime("Lista de frutas", listaFrutas);  
  82.           
  83.         //E podemos adicionar uma lista inteira dentro de outra  
  84.         umaLista.add("Pera");  
  85.         umaLista.add("Goiaba");  
  86.         umaLista.addAll(listaFrutas);  
  87.           
  88.         imprime("Lista de frutas com frutas de umaLista", umaLista);  
  89.           
  90.         //Há também métodos para remover todos os que forem iguais(removeAll),   
  91.         //manter todos os que forem iguais (retainAll)  
  92.         //ou ver se todos os elementos de uma lista estão em outra (containsAll)  
  93.         umaLista.retainAll(listaFrutas); //Mantém só as frutas que estiverem em listaFrutas  
  94.         imprime("Lista após a remoção", umaLista);  
  95.           
  96.         //Você também pode usar o iterador para remover um elemento enquanto   
  97.         //percorre a lista. Por exemplo, vamos remover as bananas:          
  98.         Iterator<String> it = umaLista.iterator();  
  99.         while (it.hasNext()) //Enquanto temos elementos da lista  
  100.         {  
  101.             String fruta = it.next(); //Obtemos o próximo elemento  
  102.             if (fruta.equals("Banana")) //Estamos na banana?  
  103.                 it.remove();            //Removemos!  
  104.         }  
  105.         imprime("Uma lista sem bananas", umaLista);          
  106.     }  
  107.   
  108.    //Podemos percorrer todos os elementos de qualquer coleção (inclusive List), usando o for each.  
  109.    public static void imprime(String titulo, Collection<String> collection) {  
  110.       System.out.println();  
  111.       System.out.println(titulo + ":");  
  112.       for (String str : collection) {  
  113.          System.out.println(str);  
  114.       }  
  115.       System.out.println();  
  116.    }  
  117. }  
Continue lendo
 

Java Aberto Copyright © 2011 -- Template created by O Pregador -- Powered by Blogger