Blogger templates

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

Visitas

quarta-feira, 18 de setembro de 2013

Usando JDesktopPanel e JFrameMDI

,

Aprenda a usar JDesktopPanel e JFrameMDI








Clique na imagem acima, para fazer o donwload

Continue lendo

segunda-feira, 9 de setembro de 2013

Como centralizar um JInternalFrame em um JDesktopPane

,




Segue uma forma de fazer um JInternalFrame ficar centralizado ao ser aberto em um JDesktopPane.

Coloque esse método na sua classe principal, que contém o JDesktopPane, aqui referenciado pela variável frmMdi, e a cada chamada de um JInternalFrame, você chama esse método passando o JInternalFrame.
Continue lendo

sábado, 7 de setembro de 2013

,

Ola, pessoal nesta vídeo aula você aprendera a criar uma classe de conexão entre uma aplicação java e um banco de dados Microsoft Access 2010. clique aqui e assista as vídeos aulas Java - Banco de Dados Access

codigo para você copiar e alterar.

// Banco de dados Microsoft Access 2010
// Josenil Ezequiel
// video aula 02

package Classe_de_bancos;    // pacote onde a classe se encontra

import java.sql.*;          // biblioteca responsável pelo sql sem ela não podemos fazer uma conexão com o banco de dados
import javax.swing.*;       // estaremos utilizando alguns recurso dessa biblioteca

public class conexao    // classe mãe
{
    //CRIAÇÃO DAS VARIÁVEIS E OBJETOS

 
    /**Explicação
     *      final private = ela e privada nessa classe ou seja ela é constante
     *      o conteudo da variavel nao podera ser alterado.
     *      String driver = é uma variavel do tipo string ou seja guarda um texto.
     *      driver="sun.jdbc.odbc.JdbcOdbcDriver"; = a variavel armazena o driver que sera utilizado;
     */
 
     final private String driver="sun.jdbc.odbc.JdbcOdbcDriver";
 
     /**
      *     esta variavel esta armazenando minha fonte de dados ou seja o endereço dela.  
      */
     final private String url =  "jdbc:odbc:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:/meubd/conta.mdb";
 
     /**
      *     varivel ususario  e senha, vamos deixa-los como vazio por padrao
      *
      */
     final private String usuario="";
     final private String senha="";
 
     /**
      *     Connection este objeto e responsavel pela conexão do banco de dados,
      *     entao temos o objeto conexão do tipo Connection  e é private ou seja
      *     so pode ser alterado aqui dentro da propria classe.
      */
     private Connection conexao;
     /**     Public= ou seja ele pode ser acessado e alterado por outra classe
      *     Statement= é responsavel por abrir o caminho até o banco de dados
      *     ResultSet= é o responsavel por armazenar o resultado dos comando sql
      */
     public  Statement statement;
     public  ResultSet resultSet;
   
     // METODO RESPONSAVEL PELA CONEXAO
 
    /**
     *  metodo do tipo public para que possa ser acessado de outras classes
     * do tipo booleano que ira retorna true or false( verdadeiro ou falso)
     */
 
     public boolean conecta ()
     {
         // variavel que retornara verdadeiro ou falso inicia-se com verdadeiro
         boolean result = true;
       
         /**
          * O comando try/catch e um comando nas linguagem de programação que diz
          * tente isso se caso de certo faça isso.
          * o catch caso de errado faça isso
          * o try pode ter uma uma infinade de catch que sao os tratamentos de
          * erros.
          * no java especificamente todo arquivo esterno é obrigatorio estar dentro
          * dele pois se tiver algum erro estara sendo tratado.
          * caso isso nao ocorra ele nao ira funcionar nas outras
          * linguaguens isso dificilmente ocorre
          */
       
         try
         {
             /** Class.forName(driver);= efetua o carregamento do driver
              * conexao= DriverManager.getConnection(url,usuario,senha); =
              * efetua a coneção com o banco de dados ele ira no endereço dado
              * pela url, verificara o usuario e a senha
              * se tudo estiver ok ele retorna true e mostra a mensagem a baixo
              **/
             Class.forName(driver);//driver
             conexao= DriverManager.getConnection(url,usuario,senha);//fonte
             JOptionPane.showMessageDialog(null,"Conectou ao banco");
         }
         /**
          * Se ele nao encontra o driver ele vai retorna essa mensagem mais o driver nao encontrado
          */
         catch(ClassNotFoundException Driver)
         {
             JOptionPane.showMessageDialog(null,"Nao Foi possivel localizar o driver de conexao "+Driver);
             result= false;      
         }
         /**
          * caso nao encontre o banco de dados, tabela ou algo do tipo
          */
         catch(SQLException Fonte)
         {
             JOptionPane.showMessageDialog(null,"Deu erro na conexao com a fonte de dados "+Fonte);
             result= false;
         }
         return result;
     }
     public void desconecta()
    {
         boolean result =true;
         try
         {
             conexao.close();
             JOptionPane.showMessageDialog(null, "Banco de dados desconetado");
         }
         catch(SQLException erroSQL)
         {
             JOptionPane.showMessageDialog(null,"Erro ao descontectar "+erroSQL);
              result= false;
         }
     }
     /**
      * (String sql)= vai ser o paremtro que desejo que seja executado
      */
     public void executa_sql(String sql)
    {
         try{
             //cria um caminho para conexao
             statement = conexao.createStatement();
             //executa a sql
             resultSet = statement.executeQuery(sql);
         }
         catch(Exception erro)
         {
             JOptionPane.showMessageDialog(null, erro.getMessage());
         }

     }
}

ate a próxima
Continue lendo

quinta-feira, 25 de julho de 2013

Código-Fonte - Orientando a Obejtos com MySQL

,

Segue abaixo o código fonte para quem quer apreender programação a objetos usando banco de dados.
Usando como padrão a arquitetura MVC..



Continue-o se você for capaz..

Clique na imagem acima para fazer o download

Continue lendo

sexta-feira, 19 de julho de 2013

Java Web Start - Aprenda a como usar [Video-Aula]

,

Aprenda a usar o java web start para atualizar o seu software automaticamente pela internet, isso é uma de muitas funções que ele pode fornecer.

Nós no facebook:
https://www.facebook.com/groups/javaaberto/
https://www.facebook.com/JavaAberto

Blog
http://www.javaaberto.blogspot.com.br/


Continue lendo

quinta-feira, 4 de julho de 2013

Processamento Digital de Imagens (PDI) com Java

,


Tratar imagens digitalmente é uma coisa cada vez mais comum, seja para fazer correções de luz, cor, retirar imperfeições ou tratá-las para uma determinada finalidade, como identificar elementos na imagem de forma automática (ex: identificar uma placa de carro em uma imagem).

Para tal, é necessária a utilização de um ou de vários filtros para que o objetivo seja alcançado. A seguir, uma lista com alguns dos filtros mais usados e uma breve explicação sobre eles:

  • Desaturação (escala de cinza): deixa uma imagem em escala de cinza, ou seja, uma imagem colorida terá apenas pixels brancos, pretos ou cinzas;
  • Binarização (Threshold): consiste em deixar uma imagem em preto e branco, cada pixel da imagem original se transforma em um pixel totalmente branco (RGB #FFFFFF) ou totalmente preto (RGB #000000). Para determinar se um pixel da imagem original se tornará preto ou branco é usado um limiar, um valor que determina a partir de qual ponto um pixel se tornará preto ou se tornará branco. A imagem tratada por este filtro não contém pixel cinza, apenas preto e/ou branco, diferente da desaturação;
  • Negativo: este filtro faz com que a cor de cada pixel da imagem original se transforme na cor inversa (ex: pixel branco se transforma em pixel preto). A cor inversa é o valor da subtração entre 255 e o valor RGB. Ex: para um amarelo com valor RGB 255, 240, 0, sua cor inversa é o RGB 0, 15, 255.
  • Mediana: filtro usado para eliminar ruídos da imagem. O algoritmo faz um cálculo da média de cores de uma certa região de pixels e determina a cor média daquele trecho da imagem. Se houver um pixel preto (ruído) em meio há vários pixels brancos a aplicação do filtro eliminará este pixel preto, tirando o ruído da imagem.
Saiba mais sobre tratamento digital de imagens: PDI
Conheça os principais filtros do Adobe Photoshop: Filtros Photoshop
Bom, agora vamos ao que interessa: criar os filtros utilizando a linguagem JAVA!
Vou criar uma classe chamada App1 que simplesmente vai aplicar o filtro para deixar uma imagem em escala de cinza, e outra classe chamada Filtro que conterá os algoritmos dos filtros. A classe Exibicao servirá apenas para exibir as imagens utilizadas em um componente JFrame, nada muito funcional, apenas para deixar o exemplo mais “bonitinho”.

App1.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public class App1 {
 
    public static void main(String[] args) throws IOException {
 
        try {
            //carrega nova imagem
            BufferedImage imagem1 = ImageIO.read(new File("images/imagem1.jpg"));
            //instancia um filtro e aplica a escala de cinza
            Filtro filtro = new Filtro();
            filtro.escalaDeCinza(imagem1);
            //gera uma nova imagem a partir da imagem1
            ImageIO.write(imagem1,"jpg",new File("images/imagem2.jpg"));
 
            //aqui apenas para demonstração,
            //carreguei novamente as duas imagens para exibi-las dentro de um JFrame
            imagem1 = ImageIO.read(new File("images/imagem1.jpg"));
            BufferedImage imagem2 = ImageIO.read(new File("images/imagem2.jpg"));
            Exibicao show = new Exibicao();
            show.exibirImagem(imagem1, imagem2);
            System.out.println("Filtro aplicado com sucesso!");
        }
        catch(IOException e){
            System.out.println("Erro! Verifique se o arquivo especificado existe e tente novamente.");
        }
        catch(Exception e){
            System.out.println("Erro! " + e.getMessage());
        }
    }
 
}
Filtro.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
public class Filtro {
 
    //método de aplicação do filtro escala de cinza
    //recebe como parâmetro uma imagem
    public static BufferedImage escalaDeCinza(BufferedImage imagem) {
        //pegar largura e altura da imagem
        int width = imagem.getWidth();
        int height = imagem.getHeight();
 
        int media = 0;
        //laço para varrer a matriz de pixels da imagem
        for (int i = 0; i < width; i++) {
            for (int j = 0; j < height; j++) {               //rgb recebe o valor RGB do pixel em questão                int rgb = imagem.getRGB(i, j);              int r = (int)((rgb&0x00FF0000)>>>16); //R
                int g = (int)((rgb&0x0000FF00)>>>8);  //G
                int b = (int) (rgb&0x000000FF);       //B
 
                //media dos valores do RGB
                //será o valor do pixel na nova imagem
                media = (r + g + b) / 3;
 
                //criar uma instância de Color
                Color color = new Color(media, media, media);
                //setar o valor do pixel com a nova cor
                imagem.setRGB(i, j, color.getRGB());
            }
        }
        return imagem;
    }
 
    public static BufferedImage negativo(BufferedImage image) {
        int width = image.getWidth();
        int height = image.getHeight();
        for (int i = 0; i < width; i++) {
            for (int j = 0; j < height; j++) {               int rgb = image.getRGB(i, j);               //a cor inversa é dado por 255 menos o valor da cor                 int r = 255 - (int)((rgb&0x00FF0000)>>>16);
                int g = 255 - (int)((rgb&0x0000FF00)>>>8);
                int b = 255 - (int) (rgb&0x000000FF);
                Color color = new Color(r, g, b);
                image.setRGB(i, j, color.getRGB());
            }
        }
        return image;
    }
 
    public static BufferedImage threshold(BufferedImage image, int limiar) {
        int width = image.getWidth();
        int height = image.getHeight();
        for (int i = 0; i < width; i++) {
            for (int j = 0; j < height; j++) {               int rgb = image.getRGB(i, j);               int r = (int)((rgb&0x00FF0000)>>>16);
                int g = (int)((rgb&0x0000FF00)>>>8);
                int b = (int) (rgb&0x000000FF);
                int media = (r + g + b) / 3;
                Color white = new Color(255, 255, 255);
                Color black = new Color(0, 0, 0);
                //como explicado no artigo, no threshold definimos um limiar,
                //que é um valor "divisor de águas"
                //pixels com valor ABAIXO do limiar viram pixels PRETOS,
                //pixels com valor ACIMA do limiar viram pixels BRANCOS
                if (media < limiar)
                    image.setRGB(i, j, black.getRGB());
                else
                    image.setRGB(i, j, white.getRGB());
            }
        }
        return image;
    }
Exibicao.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class Exibicao {
 
    public static void exibirImagem(BufferedImage image) {
        ImageIcon icon = new ImageIcon(image);
        JLabel imageLabel = new JLabel(icon);
        JFrame frame = new JFrame();
        Container contentPane = frame.getContentPane();
        contentPane.setLayout(new GridLayout());
        contentPane.add(new JScrollPane(imageLabel));
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(800, 600);
        frame.setVisible(true);
    }
 
    public static void exibirImagem(BufferedImage image, BufferedImage image2) {
        ImageIcon icon = new ImageIcon(image);
        JLabel imageLabel = new JLabel(icon);
        ImageIcon icon2 = new ImageIcon(image2);
        JLabel imageLabel2 = new JLabel(icon2);
        JFrame frame = new JFrame();
        Container contentPane = frame.getContentPane();
        contentPane.setLayout(new GridLayout());
        contentPane.add(new JScrollPane(imageLabel));
        contentPane.add(new JScrollPane(imageLabel2));
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(1100, 680);
        frame.setVisible(true);
    }
}
Continue lendo
 

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