Mostrando postagens com marcador linux. Mostrar todas as postagens
Mostrando postagens com marcador linux. Mostrar todas as postagens

segunda-feira, 4 de fevereiro de 2013

Criando ambiente para desenvolvimento Android no Linux


Introdução

O principal objetivo deste post é explicar de maneira simples e rápida como se monta o ambiente para desenvolvimento e teste de aplicações Android, bem como criar uma simples aplicação.


Obtenção do SDK do Android

O primeiro passo é obter o android-sdk, o mesmo pode ser obtido no site do google na parte referente ao desenvolvedor. Para ir para parte referente ao desenvolvedor é necessário ir até  o rodapé da página e escolher e clicar no link desenvolvedores.


 Figura 1: Site do desenvolvedor.


Após clicar em no link você será direcionado para a parte do site voltada para os desenvolvedores. Abaixo é possível ver a versão da página do dia 8 de Novembro de 2012, talvez a mesma esteja diferente  quando estiver lendo esse post.


Figura 2: Site do android voltado para o desenvolvedor.


Para obter o sdk é necessário clicar em Developers que está ao lado do mascote do android e selecionar a opção Get the SDK.


Figura 3: Seleção da opção get the sdk.


Agora vocẽ será direcionado para página para realizar o download do sdk de acordo com o seu sistema operacional, no meu caso vou puxar android-sdk_r20.03-linux.tgz  que é voltado para linux.


Figura 4: Página voltado para o download do android sdk.


Abaixo é possível ver o momento no qual é iniciado o download.

Figura 5:Janela que inicia o download.

Figura 6: Download em pleno andamento.

Figura 7: Visão do arquivo recém baixado.

Após realizar o download do arquivo sdk é necessário descompacta-lo, para isso vá até o diretório onde o mesmo se encontra e execute o seguinte comando (caso o arquivo tenha extensão .tgz)

tar xvzf nome_arquivo.tgz

Onde:

nome_arquivo.tgz - É o nome do arquivo a ser descomptactado.


Neste exemplo comando ficaria assim:

tar xvzf android-sdk_r10-linux_x86.tgz



Figura 8: Momento do descompactação


Após realizar o descompactamento é necessário ir entrar na pasta e entrar na pasta tools.




Figura 9: Pasta tools.

Agora execute o arquivo android para abrir o Android Manager.
Para executar o arquivo android basta digitar da seguinte maneira.

./android


Figura 10: Execução do arquivo android pela primeira vez.

Abaixo é possíve visualizar a janela do Android Manager aberta. Agora basta seleciona o que você deseja fazer o download (Versões do do Android e ferramentas para desenvolvimento).

Figura 11: Tela do Android Sdk Manager.

Ao selecionar os arquivos  que serão abaixados basta clicar no botão Install N package... 

Após clicar no botão Install N package você será direcionado para tela de aceitação de termos. Para aceitar o mesmo basta selecionar Accept e clicar no botão Install.
Figura 12: Tela para aceitação dos termos e instalação.


Utilizando o Eclipse


Agora que você já terminou de configura o sdk do android, o próximo passo a ser seguido é a instalação do android no framework eclipse.

Inicie o eclipse como você gosta. No meu caso eu abri pelo terminal.

Figura 13: Iniciação do Eclipse


Para fazer a junção entre o sdk e o android primeiramente é necessário realizar a instalação de plugin no mesmo. Para isso basta seguir o seguinte

Figura 14: Tela inicial do eclipse.

Para instalar o plugin clique nos itens da barra de ferramenta: HelpInstall New Software.

Para instalar o plugin basta colar a URL abaixo no campo Work with:

https://dl-ssl.google.com/android/eclipse/


E depois clicar em no botão Add.


 

Figura 15:  Tela para adição de repositório.

 


Figura 16: Tela para instalação de plugin do eclipse.


Após você clicar em Add será exibido os itens possíveis para download. Basta você selecionar o item e clicar em Finish.

Figura 17: Tela que exibi os itens para download.




Figura 18: Seleção de plugin para download.

Após a seleção dos plugins para download basta clicar no botão Next.
Abaixo é exibidos os itens que serão instalados.


Figura 19: Itens a ser instalados.

Na próxima tela é a tela responsável pela aceitação dos termos. Basta habilitar o campo aceito e clicar em Finish.


Figura 20: Tela de aceitação de termos.

Figura 21: Momento da instalação do plugin no eclipse.

Após o termino da instalação do será requerido que você reinicie o eclipse. Caso você queira basta clicar em Yes.


Figura 22: Confirmação pós instalação do plugin.

Após a reiniciação do eclipse o eclipse será reaberto agora sendo posśivel criar projetos do android.


Figura 23: Tela inicial pós reiniciar.

Um passo importante agora é criar um novo emulador para seus projetos android. Para criar um emulador basta clicar no botão Android Virtual Device Manager.



Figura 24: Botão Android Virtual Device Manager a direita.

Abaixo é possível ver a tela para criação de um emulador.


Figura 25: Tela de criação de um novo emulador.

Após configura o emulador com os devidos atributos basta clicar em Create AVD.

Abaixo é possível ver o emulador recém criado.


Figura 25: Tela que lista os emuladores criados.

Para criar um novo projeto Android é necessário clicar na barra de ferramentas do eclipse nos itens:

File > New

Abaixo é possível ver a seleção do novo projeto Android Application Project:

Figura 26: Tela para criação do primeiro programa para android.

Após selecionar o item Android Application Project, basta clicar em Next.
Na próxima tela você deve passar algumas informações sobre o seu primeiro projeto android, como o nome da aplicação, o nome do projeto, o nome do pacote e as versões do android que o seu aplicativo radará. Após passar todas informações basta clicar no botão Next.

Vale salienta que só aparecerá as versões do android que vocẽ instalou anteriomente no Android Manager.

Figura 27: Tela para informações basicas do seu aplicativo.


Após clicar no botão Next você será direcionado para tela responsável por gerar o icone do aplicativo. Após configurar o icone a seu gosto basta clicar em Next, para prosseguir.

Figura 28: Tela responsável pela geração do icone do aplicativo.

Na próxima tela criar a sua primeira Activity e sua tela. Após escolher o modelo basta clicar em Next.


Figura 29: Tela para criação da primeira Activity.


O próximo passo é configura a Activity em si e seus atributos básicos.

Figura 30: Tela para configuração da Activity.

Pronto, agora você consegui criar seu primeiro projeto android. Abaixo é possível ver a primeira tela que você criou anteriomente com a frase Hello World.


Figura 31: Tela inicial do projeto recém criado.

Para fazer o projeto rodar basta clicar no projeto em si como é visto abaixo e escolher a opção:

Run As > Android Aplication

Figura 32: Momento da seleção do projeto para executa-lo.

Após clicar Aplication Android você será direcionado para tela básica de configuração de execução (caso for a primeira vez que você executa), clique na aba target selecione o seu emulador que fora criado anteriomente clique no botão Apply e após no botão Run.


Figura 33: Tela de seleção do simulador.


O emulador começará a iniciar (isso poderá levar alguns minutos) e logo após a inicialização seu projeto será rodado, como em celular normal como é possível ver abaixo:

Figura 34: O primeiro programando rodando no simulador.


Conclusão

A criação de um ambiente para desenvolvimento Android é bem simples e para isso basta gastar um pouco de tempo.

quinta-feira, 22 de novembro de 2012

Localizar destino de um link no linux

Resumo


ls -l nome_link

Introdução


O principal objetivo deste post é explicar de maneira simples e rápida como se encontra o destino de um link no sistema operacional linux através do termnal.


Descobrindo destino do link


Para descobri o destino de um link pasta seguir a seguinte sintaxe:

ls -l nome_do_link


Onde:

  • nome_do_link - O nome do link que você deseja descobri o destino.

Exemplo:

ls -l vim





Figura 1: Exemplo da execução do comando ls -l

terça-feira, 30 de outubro de 2012

Utilizando comando bg

Introdução

O principal objetivo deste post é explicar de maneira simples e rápida como se utiliza o comando bg em um terminal Linux. Neste post foi utilizado o terminal do ubuntu  12.10.






Utilizando comando bg 
Imagine que você execute algum programa através do terminal como, por exemplo, 
o gedit e deseja liberar o terminal e não deseja fechar o gedit para isso.
 
A sintaxe é bem simples:

gedit
 

 
Figura 1: Execução do gedit através do terminal.
 
Para pausar o programa basta apertar a combinação de tecla CTRL+Z.
 

 
Figura 2: Execução do gedit pausada.
 
Para dar fazer o gedit rodar em background basta digitar o comando bg.
 
Sintaxe:
 
bg


 
Figura 3: Execução do comando bg.
 
Após a execução do comando bg o gedit passará a rodar em background, como se o mesmo tivesse sido executado com o símbolo & ao final do comando.
 
Como o gedit está rodando e background você está livre para fechar o termina ou executar qualquer outro comando através do terminal.

Conclusão

Como foi possível ver ao longo do post a utilizam do comando bg é bem simples e pode vir a ser muito util.

segunda-feira, 29 de outubro de 2012

Criando uma aplicação passo-a-passo com java Swing


Introdução

 

Java é uma ótima linguagem orientada objeto para criar aplicações que fazem utilização de interface gráfica, seja em desktop ou web.
Neste artigo será criado um aplicativo simples que tem a função de ser uma calculadora com uma interface gráfica utilizando Swing.

 

Pré-requisitos

Para criar a aplicação é necessário ter instalado em seu computador o seguinte programa.
  • NetBeans – É necessário que se tenha instalado uma IDE para facilitar o desenvolvimento do projeto. Para o artigo foi escolhido o NetBeans, pois acredito ser mais fácil criar telas utilizando Swing com o mesmo.

 

Criando um projeto

Para criar um projeto no NetBeans é bem simples, basta clicar em: Arquivo > Novo Projeto

Tela inicial do netbeans
Figura 1: Tela inicial do NetBeans

Após clicar no item “Novo Projeto”, será dada a opção para escolher o tipo de projeto escolha:
  • Categorias: Java
  • Projetos: Aplicação Java
  •  
Tela de escolha tipo projeto
Figura 2: Tela de escolha tipo projeto

Após fazer as escolhas corretas clique em Próximo para ir a nova tela.
Na tela a seguir é necessário informar o nome do projeto, neste caso criei o projeto com nome de CalculadoraSwing.

Adição de nome ao projeto
Figura 3: Adição de nome ao projeto

Após criar o projeto é necessário criar uma classe que será responsável por realizar todos o cálculos que serão fornecidos pelo usuário através da tela, foi criada classe Calculos.java para realizar essa função.
Para criar uma classe no NetBeans, basta clicar no projeto com o botão direito e escolher a opção: Novo > Classe Java

Tela para criação de uma nova classe
Figura 4: Tela para criação de uma nova classe

Abaixo é possível ver o conteúdo da classe Calculo.java

Listagem 1: Classe Calculo.java
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package calculadoraswing;

import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Robson Fernando Gomes
 */
public class Calculos {

    public static void main(String args[])
    {
        Calculos c=new Calculos();
        System.out.println(">>>>"+c.calculadora("5/5"));
    }
    public String calculadora(String expressao) {
        String resultado;
        List listaNumeros = new ArrayList();
        List listaOperadores = new ArrayList();

        listaNumeros = obterNumeros(expressao);
        listaOperadores = obterOperadores(expressao);

        resultado = calcularValor(listaNumeros, listaOperadores);

        return resultado;

    }

    private String calcularValor(List listaNumeros, List listaOperadores) {
        String resultado = "";
        double total = 0.0;
        int j=0;
        for (int i = 0; i < listaNumeros.size()-1; i++) {

            if ( total==0.0) {
                double numero1 = listaNumeros.get(i).doubleValue();
                double numero2 = listaNumeros.get(i + 1).doubleValue();
                char operador = listaOperadores.get(i).charValue();
                total = executarOperacao(numero1, operador, numero2);
            }
            else if (total>0.0) {
               
                double numero2 = listaNumeros.get(i).doubleValue();
                char operador = listaOperadores.get(j).charValue();
                total = executarOperacao(total, operador, numero2);
                j++;
            }
           
           

        }

        resultado = ""+total;
        return resultado;
    }

    private double executarOperacao(double numero1, char operador, double numero2) {
        double resultado = 0.0;

        if (operador == '+') {
            resultado = numero1 + numero2;
        } else if (operador == '-') {
            resultado = numero1 - numero2;
        } else if (operador == '/') {
            resultado = numero1 / numero2;
        } else if (operador == '*') {
            resultado = numero1 * numero2;
        }
        return resultado;
    }

    private List obterNumeros(String expressao) {

        List listaNumeros = new ArrayList();

        String numeroEmString = "";
        for (int i = 0; i < expressao.length(); i++) {

            if (isOperador(expressao.charAt(i))) {
                Double numero = Double.valueOf(numeroEmString);
                listaNumeros.add(numero);
                numeroEmString = "";
            } else {
                numeroEmString = numeroEmString.concat("" + expressao.charAt(i));
            }
        }
        if(!numeroEmString.isEmpty())
        {
                Double numero = Double.valueOf(numeroEmString);
                listaNumeros.add(numero);
           
        }
        return listaNumeros;
    }

    private List obterOperadores(String expressao) {

        List listaOperadores = new ArrayList();


        for (int i = 0; i < expressao.length(); i++) {

            if (isOperador(expressao.charAt(i))) {
                listaOperadores.add(new Character(expressao.charAt(i)));
            }
        }

        return listaOperadores;
    }

    private boolean isOperador(char caracter) {
        boolean isOperador = false;
        if (caracter == '-' || caracter == '+' || caracter == '/' || caracter == '*') {
            isOperador = true;
        }
        return isOperador;
    }
}

Classe Calculo.java vista no NetBeans
Figura 5: Classe Calculo.java vista no NetBeans

O próximo passo é criar a classe responsável pela interface, será criada uma classe chamada TelaCalculadora.class que terá como classe mãe a classe JFrame, que e responsável pela criação de uma tela em Swing.

Para criar uma classe do tipo JFrame, basta clicar no pacote no qual será criads e clicar em: Novo > Form JFrame.

Tela para criação de um Form JFrame
Figura 6: Tela para criação de um Form JFrame

Abaixo é possível ver a tela recém-criada pronta para edição.

Classe TelaCalculadora.java
Figura 7: Classe TelaCalculadora.java

Para modificar a tela é necessário clicar nos itens da aba paleta e jogar na tela em si.

Aba Paleta
Figura 8: Aba Paleta

Inicialmente é necessário adicionar um “Painel” a nossa tela basta clicar no mesmo na aba “Paleta” e arrastar até a tela do programa.

Painel arrastado para a classe TelaCalculadora.java
Figura 9: Painel arrastado para a classe TelaCalculadora.java

Agora basta direcionar o painel dentro da tela.
O próximo passo é adicionar um objeto do tipo “Painel de Texto”, como é possível ver abaixo:

Adição do item Painel de Texto
Figura 10: Adição do item Painel de Texto

Agora altere o nome da variável do item Painel de texto que fora adicionado para “visorCalculadora”. Para alterar o nome da variável basta clicar com o botão direito em cima do item que se deseja alterar e escolher a opção “Alterar Nome de Variável...”, abaixo é possível o momento em que se está alterando o nome da variável do item.

Alteração do nome de variável
Figura 11: Alteração do nome de variável

Após adicionar o visor, é necessário adicionar os botões Pra adicionar o botão escolha o item “Botão” na aba Paleta.

Adição de um item Botão a tela da calculadora
Figura 12: Adição de um item Botão a tela da calculadora

Agora que o botão foi adicionado é necessário alterar o nome da variável do mesmo, assim como foi feito no item referente ao visor, altere o nome da variável para botaoCE.
Agora também é necessário alterar o texto do botão, Para alterar o texto do item, clique com o botão direito sobre ele e escolha a opção “Editar Texto”.

Alteração do texto contido no botão
Figura 13: Alteração do texto contido no botão

Essa primeira tecla será o botão CE, que será utilizado para limpar o visor.

Imagem do primeiro botão na calculadora
Figura 14: Imagem do primeiro botão na calculadora

Agora é necessário atribuir uma ação ao botão para quando o mesmo for clicado. Para adicionar um evento a um determinado item basta clicar com o botão direito sobre o item e escolher as opções: Eventos > Mouse > mouseClicked.
Logo que for adicionada essa ação, a tela será direcionada para código fonte.

Imagem do código fonte da TelaCalculadora.java
Figura 15: Imagem do código fonte da TelaCalculadora.java

Para voltar à tela de edição gráfica basta clicar no item “Projeto” que fica ao lado do item selecionado “Código-Fonte”.
Agora será necessário seguir esse processo para todos os botões da calculadora.
Abaixo é possível ver como ficará a tela neste exemplo:

Imagem da TelaCalculadora.java após a inserção dos botões
Figura 16: Imagem da TelaCalculadora.java após a inserção dos botões

O próximo passo é fazer com que seja exibido no visor o valor referente à tecla pressionada. Para programar os botões é necessário editar o código-fonte da tela, para isso é preciso clicar no botão Código-Fonte.
Um exemplo de código que faz alteração no visor quando algum botão é apertado pode ser visto abaixo:

Listagem 2: Exemplo de código para alteração do valor do visor.




private void botao3MouseClicked(java.awt.event.MouseEvent evt) {
        String valor = visorCalculador.getText();
        visorCalculador.setText(valor + "3");    
    }
O trecho de código acima funciona da seguinte maneira. Quando o método acima é chamado, é pego o valor já existente no visor através do método “getText()” contido na variável “visorCalculador ”, logo após é concatenado o número “3”, esse processo é necessário em todos os botões.

Código fonte da classe TelaCalculadora.java
Figura 17: Código fonte da classe TelaCalculadora.java

Abaixo é possível ver o trecho código-fonte da classe TelaCalculadora.

Listagem 3: Código fonte da classe TelaCalculadora.java.


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package calculadoraswing;

/**
 *
 * @author mago
 */
public class TelaCalculadora extends javax.swing.JFrame {

    /**
     * Creates new form TelaCalculadora
     */
    public TelaCalculadora() {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    //
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        visorCalculador = new javax.swing.JTextPane();
        botaoCE = new javax.swing.JButton();
        botao7 = new javax.swing.JButton();
        botao8 = new javax.swing.JButton();
        botao9 = new javax.swing.JButton();
        botao5 = new javax.swing.JButton();
        botao6 = new javax.swing.JButton();
        botao4 = new javax.swing.JButton();
        botao1 = new javax.swing.JButton();
        botao2 = new javax.swing.JButton();
        botao3 = new javax.swing.JButton();
        botao0 = new javax.swing.JButton();
        botaoVezes = new javax.swing.JButton();
        botaoDiv = new javax.swing.JButton();
        botaoMenos = new javax.swing.JButton();
        botaoMais = new javax.swing.JButton();
        botaoIgual = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jScrollPane1.setViewportView(visorCalculador);

        botaoCE.setText("CE");
        botaoCE.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                botaoCEMouseClicked(evt);
            }
        });

        botao7.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
        botao7.setText("7");
        botao7.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                botao7MouseClicked(evt);
            }
        });

        botao8.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
        botao8.setText("8");
        botao8.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                botao8MouseClicked(evt);
            }
        });

        botao9.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
        botao9.setText("9");
        botao9.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                botao9MouseClicked(evt);
            }
        });

        botao5.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
        botao5.setText("5");
        botao5.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                botao5MouseClicked(evt);
            }
        });

        botao6.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
        botao6.setText("6");
        botao6.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                botao6MouseClicked(evt);
            }
        });

        botao4.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
        botao4.setText("4");
        botao4.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                botao4MouseClicked(evt);
            }
        });

        botao1.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
        botao1.setText("1");
        botao1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                botao1MouseClicked(evt);
            }
        });

        botao2.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
        botao2.setText("2");
        botao2.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                botao2MouseClicked(evt);
            }
        });

        botao3.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
        botao3.setText("3");
        botao3.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                botao3MouseClicked(evt);
            }
        });

        botao0.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
        botao0.setText("0");
        botao0.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                botao0MouseClicked(evt);
            }
        });

        botaoVezes.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
        botaoVezes.setText("*");
        botaoVezes.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                botaoVezesMouseClicked(evt);
            }
        });

        botaoDiv.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
        botaoDiv.setText("/");
        botaoDiv.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                botaoDivMouseClicked(evt);
            }
        });

        botaoMenos.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
        botaoMenos.setText("-");
        botaoMenos.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                botaoMenosMouseClicked(evt);
            }
        });

        botaoMais.setFont(new java.awt.Font("Ubuntu", 0, 24)); // NOI18N
        botaoMais.setText("+");
        botaoMais.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                botaoMaisMouseClicked(evt);
            }
        });

        botaoIgual.setText("=");
        botaoIgual.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                botaoIgualMouseClicked(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 218, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(0, 0, Short.MAX_VALUE))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(botaoCE, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addGap(26, 26, 26)
                                .addComponent(botao0, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
                                .addComponent(botao1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(botao2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                            .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(botao7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(botao4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(botao5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(botao8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addComponent(botao3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(botaoMais, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                            .addComponent(botaoIgual, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addComponent(botao6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(botaoMenos, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                                    .addComponent(botaoVezes, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                                        .addComponent(botao9, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(botaoDiv, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                                .addGap(2, 2, 2)))))
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(44, 44, 44)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(24, 24, 24)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(botaoVezes, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(botaoCE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE, false)
                    .addComponent(botao7, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                    .addComponent(botao8, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                    .addComponent(botao9, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(botaoDiv, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(botao5, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                    .addComponent(botao6, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                    .addComponent(botao4, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
                    .addComponent(botaoMenos, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(botao1, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(botao2, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(botao3, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(botaoMais, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(botao0, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(botaoIgual, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)))
        );

        jPanel1Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {botao7, botao8, botao9});

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(31, Short.MAX_VALUE))
        );

        pack();
    }//


    private void botaoCEMouseClicked(java.awt.event.MouseEvent evt) {                                    

        visorCalculador.setText("");

    }                                   

    private void botaoVezesMouseClicked(java.awt.event.MouseEvent evt) {                                       
        String valor = visorCalculador.getText();
        visorCalculador.setText(valor + "*");
    }                                      

    private void botao7MouseClicked(java.awt.event.MouseEvent evt) {                                   
        String valor = visorCalculador.getText();
        visorCalculador.setText(valor + "7");
    }                                  

    private void botao8MouseClicked(java.awt.event.MouseEvent evt) {                                   
        String valor = visorCalculador.getText();
        visorCalculador.setText(valor + "8");        // TODO add your handling code here:
    }                                  

    private void botao9MouseClicked(java.awt.event.MouseEvent evt) {                                   
        String valor = visorCalculador.getText();
        visorCalculador.setText(valor + "9");        // TODO add your handling code here:
    }                                  

    private void botaoDivMouseClicked(java.awt.event.MouseEvent evt) {                                     
        String valor = visorCalculador.getText();
        visorCalculador.setText(valor + "/");        // TODO add your handling code here:
    }                                    

    private void botao4MouseClicked(java.awt.event.MouseEvent evt) {                                   
        String valor = visorCalculador.getText();
        visorCalculador.setText(valor + "4");        // TODO add your handling code here:
    }                                  

    private void botao5MouseClicked(java.awt.event.MouseEvent evt) {                                   
        String valor = visorCalculador.getText();
        visorCalculador.setText(valor + "5");        // TODO add your handling code here:
    }                                  

    private void botao6MouseClicked(java.awt.event.MouseEvent evt) {                                   
        String valor = visorCalculador.getText();
        visorCalculador.setText(valor + "6");        // TODO add your handling code here:
    }                                  

    private void botaoMenosMouseClicked(java.awt.event.MouseEvent evt) {                                       
        String valor = visorCalculador.getText();
        visorCalculador.setText(valor + "-");        // TODO add your handling code here:
    }                                      

    private void botao1MouseClicked(java.awt.event.MouseEvent evt) {
        String valor = visorCalculador.getText();
        visorCalculador.setText(valor + "1");        // TODO add your handling code here:
    }

    private void botao2MouseClicked(java.awt.event.MouseEvent evt) {
        String valor = visorCalculador.getText();
        visorCalculador.setText(valor + "2");        // TODO add your handling code here:
    }

    private void botao3MouseClicked(java.awt.event.MouseEvent evt) {
        String valor = visorCalculador.getText();
        visorCalculador.setText(valor + "3");        // TODO add your handling code here:
    }

    private void botaoMaisMouseClicked(java.awt.event.MouseEvent evt) {
        String valor = visorCalculador.getText();
        visorCalculador.setText(valor + "+");        // TODO add your handling code here:
    }

    private void botao0MouseClicked(java.awt.event.MouseEvent evt) {
        String valor = visorCalculador.getText();
        visorCalculador.setText(valor + "0");        // TODO add your handling code here:
    }

    private void botaoIgualMouseClicked(java.awt.event.MouseEvent evt) {
        String valor = visorCalculador.getText();
        System.out.println(">>>"+valor);
        Calculos calculos = new Calculos();
        String resultado = calculos.calculadora(valor);
       
        visorCalculador.setText(resultado);
// TODO add your handling code here:
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(TelaCalculadora.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(TelaCalculadora.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(TelaCalculadora.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(TelaCalculadora.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //


        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new TelaCalculadora().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify
    private javax.swing.JButton botao0;
    private javax.swing.JButton botao1;
    private javax.swing.JButton botao2;
    private javax.swing.JButton botao3;
    private javax.swing.JButton botao4;
    private javax.swing.JButton botao5;
    private javax.swing.JButton botao6;
    private javax.swing.JButton botao7;
    private javax.swing.JButton botao8;
    private javax.swing.JButton botao9;
    private javax.swing.JButton botaoCE;
    private javax.swing.JButton botaoDiv;
    private javax.swing.JButton botaoIgual;
    private javax.swing.JButton botaoMais;
    private javax.swing.JButton botaoMenos;
    private javax.swing.JButton botaoVezes;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextPane visorCalculador;
    // End of variables declaration
}


Conclusão

Como foi possível ver ao longo do artigo, a construção de aplicativos utilizando interface gráfica Swing é bem simples quando se utiliza o IDE NetBeans. Uma boa interface gráfica faz toda diferença em qualquer programa, e a utilização de Swing para criação desta interface pode vir a ser muito útil.



Bibliográfia

Brevemente publicado em:

http://www.devmedia.com.br/criacao-de-aplicacoes-em-java-utilizando-swing/26007 - Robson Fernando Gomes (Autor do Blog)