interface gráfica em java utilizando o netbeans.pdf

15
Interface Gráfica em JAVA utilizando o NetBeans 1  Abrir o NetBeans / Clicar em Arquivo / Novo Projeto.  2 ‐ Depois na opção escolher o projeto clicar em Java.    

Upload: thais-xavier

Post on 25-Nov-2015

312 views

Category:

Documents


7 download

TRANSCRIPT

  • InterfaceGrficaemJAVAutilizandooNetBeans1AbriroNetBeans/ClicaremArquivo/NovoProjeto.

    2DepoisnaopoescolheroprojetoclicaremJava.

  • 3DepoisnaopoprojetoclicaremAplicativodareadetrabalhoJava.

    3DepoisclicarnoBotoProximo.4DepoisclicarnoBotoProximo.

  • 5DepoisdarnomeaoProjetoedepoisclicarnoBotoFinalizar.

    6Prontosuainterfaceestcriadaagorascriaroslayoutsdastelas.

  • 7Doladodireitoficaapaletadecomponenteseaspropriedades.

    EXEMPLO:CriarumainterfacequemostreonomequefoidigitadonoTextnomomentoemqueseclicarnobotoOK.

  • DdoiscliquesnobotoOKedigiteocdigoabaixo:privatevoidbutton1ActionPerformed(java.awt.event.ActionEventevt){Stringstr;str=this.textField1.getText();this.label2.setText("Ol,"+str+"!");}

  • CRIANDOUMACALCULADORAEMJAVAPrimeiramente, vamos criar um novo aplicativo Java. No tutorial est sendo utilizado a IDE do Netbeans.

    Neste exemplo, vou renomear o nome do projeto para calc.

    Vamos clicar sobre o pacote calc com o boto direito e adicionar um novo Formulrio JFrame.

    Renomeie o nome do JFrame para fCalc para identidicar o forumrio da calculadora. A partir da, s nos resta desenhar a calculadora, utilizando JButton e JTextField como o visor da mesma.

  • O Formulrio fica da seguinte maneira:

    Agora basta alterar o nome da varivel do visor para comearmos a programar. Clique com o boto direito em cima do JTextField e clique em Alterar nome da varivel. Renomeie para visor para que possamos identificar e facilitar o cdigo.

    Agora, vamos mandar o Java escrever no visor cada nmero de acordo com cada boto que o usurio clicar. Vamos criar uma rotina para isso, com o seguinte cdigo:private void preecher_visor(String valor){ String valor_atual = visor.getText(); // pega o texto atual do visor visor.setText(valor_atual + valor); // adiciona o texto ao valor atual }

    A partir de agora, basta adicionarmos a rotina a cada boto do formulrio. Clique com o boto direito sobre o boto 0 (zero) e selecione Evento>Actions>actionPerformed.

  • private void jButton10ActionPerformed(java.awt.event.ActionEvent evt) { preecher_visor("0"); // preenche com o valor 0 } }

    Adicione o mesmo cdigo para todos os botes numricos, apenas mudando o nmero do preenchimento.

    Para continuar, precisamos criar duas variaveis globais que sero usadas pelo projeto todo, uma String para receber o primeiro valor e um Char para receber o operador atual. Ento, declare: char operador; String valor1; Agora podemos criar o procedimento para cada operador. Adicione para cada operador ao evento actionPerformed o seguinte cdigo, mudando apenas o operador para seu respectivo texto. operador = '+'; // recebe o operador valor1 = visor.getText(); // recebe o valor atual do visor visor.setText(""); // apaga o visor No caso acima, o cdigo pertence ao boto de soma. Agora a funo responsvel por calcular a variavel valor1 com o valor atual pela variavel operador. Essa funo retorna um valor inteiro. repare: private int private int calcular(int num1, char op, int num2){ // declaramos as variveis necessarias para o calculo int res = 0; // resultado if(op == '+'){ // se operador = + entao... res = num1 + num2; // resultado = numero1 + n2 } else if(op == '-'){ // senao, se... res = num1 - num2; } else if(op == '*'){ res = num1 * num2; } else if(op == '/'){ res = num1 / num2; } return res; // retorna resultado } Agora, s nos resta o cdigo do boto igual (=) para calcular o valor atual com o valor armazenado na variavel valor1. Para isso vamos chamar a funo que criamos anteriormente que nos retorna um valor inteiro, chamada calcular. private void jButton14ActionPerformed(java.awt.event.ActionEvent evt) { String valor2 = visor.getText(); // valor2 recebe o valor atual int v = Integer.parseInt(valor1); // converte o valor1 em inteiro int v2 = Integer.parseInt(valor2); // converte valor2 em inteiro visor.setText(""+calcular(v, operador, v2)); // define o visor pelos parametros da funo calcular // v = valor1 | v2 = valor2 (atual) | operador = variavel declarada anteriormente } Ao executarmos a aplicao, o formulrio no exibido, por que? Porque ele comea sendo executado a partir do arquivo calc.java e no do formulrio JFrame (fCalc). Ento, abra o arquivo java.calc e adicione a linha abaixo. package calc;

  • import javax.swing.JFrame; public class Calc { public static void main(String[] args) { // cria uma nova instancia do formulrio e deixa-o visivel. new fCalc().setVisible(true); } } CLASSEJOPTIONPANEA classe JOptionPane nos proporciona uma srie de mtodos estticos que ao serem invocados criam caixas de dilogos simples e objetivas. Para usar JOptionPane temos sempre que importar o pacote javax.swing.JOptionPane primeiro. Caixas de Dilogo Input Text As caixas de dilogo de entrada de texto ou Input Text Dialog servem para fazer uma requisio de algum dado ao usurio de forma bem simples e direta. O que digitado pelo usurio retornado pelo mtodo em forma de string. Existem mais de 10 mtodos sobrecarregados para invocar uma caixa de dilogo Input Text, mas, a princpio, usaremos a mais simples. O mtodo showInputText recebe um argumento que a string contendo a informao desejada, o que na maioria das vezes uma pergunta ou pedido. O exemplo abaixo demonstra um programa pedindo para que digite seu nome. 1.import javax.swing.JOptionPane; 2. 3.public class CaixasDeDialogo { 4.public static void main(String[] args) { 5.JOptionPane.showInputDialog("Qual o seu nome?"); 6.} 7.} Ser apresentada uma janela a seguir.

    Caixas de Dilogo Confirm Outra caixa de dilogo simples e objetiva do JOptionPane a caixa de dilogo de confirmao ou Confirm Dialog. A Confirm Dialog (caixa de confirmao) consiste de uma caixa contendo uma mensagem, um cone e trs botes: sim, no e cancelar. Apesar deste ser o aspecto padro, esta caixa, como qualquer outra de JOptionPane, pode ser facilmente configurada (assunto que ser tratado com mais detalhes nas prximas pginas). No mtodo padro chamado showConfirmDialog usamos dois argumentos:

  • 1. O primeiro a dependncia ou frame pai, ou seja, de qual janela esta confirmao est sendo gerada. Como nossos exemplos iniciais no possuem nenhuma dependncia, ento, sempre usaremos null neste argumento.

    2. O segundo argumento a mensagem que desejamos mostrar ao usurio.

    O mtodo showConfirmDialog sempre retorna uma constante que a resposta clicada pelo usurio, que so:

    Valor Nome da Constante Equivale

    0 YES_OPTION ao clicar no boto Yes (sim)

    1 NO_OPTION ao clicar no boto No (no)

    2 CANCEL_OPTION ao clicar no boto Cancel (cancelar)

    Melhorando o exemplo anterior ficaria assim. import javax.swing.JOptionPane; public class CaixasDeDialogo { public static void main(String[ ] args) { String nome = null; nome = JOptionPane.showInputDialog("Qual o seu nome?"); JOptionPane.showConfirmDialog(null, "O seu nome " + nome + "?"); } } A caixa de confirmao pareceria da seguinte forma:

    Caixa de Dilogo de Mensagem A caixa de dilogo de mensagem uma caixa que serve apenas para emitir uma mensagem. Esta caixa tambm muito configurvel e verstil, pois serve para muitas situaes distintas como uma mensagem de erro, um alerta, ou simplesmente uma informao. O mtodo showMessageDialog responsvel em trazer a caixa de mensagem, o qual pode ter muitos argumentos, porm, vamos nos ater ao mais simples. Assim como o mtodo showConfirmDialog, usaremos null como valor de nosso primeiro argumento, pois, por enquanto, no h dependncia de outras janelas em nosso programa. O segundo argumento a mensagem que desejamos emitir. Para finalizar nosso exemplo, incluiremos as caixas de mensagem de acordo com as respostas. .import javax.swing.JOptionPane; .public class CaixasDeDialogo { public static void main(String[] args) { String nome = null; int resposta; nome = JOptionPane.showInputDialog("Qual o seu nome?"); resposta = JOptionPane.showConfirmDialog(null, "O seu nome " + nome + "?"); if (resposta == JOptionPane.YES_OPTION) {

  • // verifica se o usurio clicou no boto YES JOptionPane.showMessageDialog(null, "Seu nome " + nome); } else { JOptionPane.showMessageDialog(null, "Seu nome no " + nome); } } }

    Abaixo est um exemplo de como ir ficar a caixa de mensagem caso clique no boto YES.

    Entrada e Sada de dados por JOptionPane

    As caixas de dilogo tm uma funo importante na interao do programa com o usurio. atravs delas que dados so solicitados pelo programa e atravs delas que mensagens de erro, informaes, alertas e avisos podem ser exibidos para o usurio.

    A classe javax.swing.JOptionPane facilita a tarefa de exibir dilogos padronizados que solicitem algum valor ao usurio ou que exibam alguma informao. Apesar da aparente complexidade, em funo do grande nmero de mtodos que ela implementa, a maioria das tarefas realizadas com essa classe se resumir a chamadas de uma nica linha a um dos seguintes mtodos.

    showMessageDialog(); Caixa de dilogo que apresenta uma mensagem, possibilitando acrescentar cones de alerta ao usurio;

    showConfirmDialog(); Caixa de dilogo que, alm de emitir uma mensagem, possibilita ao usurio responder a uma pergunta;

    showInputDialog(); Caixa de dilogo que, alm de emitir uma mensagem, permite a entrada de um texto;

    showOptionDialog(); Caixa de dilogo que abrange os trs tipos anteriores.

    Uma caracterstica particular da classe JOptionPane a no necessidade de declarao de objetos para a criao das caixas, que so criadas diretamente pelos mtodos dessas classes.

    showMessageDialog()

    A caixa de dilogo showMessageDialog() utilizada para mostrar ao usurio alguma informao e no retorna nenhum tipo de valor de resposta. Essas caixas de dilogo podem apresentar um cone referente ao tipo de mensagem (pergunta, informao, alerta, ou erro) ou no apresentar nada, apenas a mensagem na tela sem cone. Sintaxe:

  • JoptionPane.showMessageDialog(Component, , , )

    Onde:

    Component: Refere-se a um objeto do tipo continer que permite definir a posio da tela em que a caixa de mensagem aparecer. Normalmente esse argumento deixado como "null" (default) para que a mensagem aparea centralizada na tela.

    Mensagem: a mensagem do tipo String que a caixa de dilogo informa ao usurio.

    Ttulo da mensagem: o texto que aparece na barra de ttulo da janela da caixa de dilogo.

    Tipo da mensagem: o cone que representa o tipo de mensagem que est sendo informado ao usurio. Esse cone definido pelo usurio. A tabela abaixo apresenta as "constantes" da linguagem Java para definio dos cones a serem apresentados na tela.

    cone Comando Pergunta JOptionPane.QUESTION_MESSAGE

    Informao JOptionPane.INFORMATION_MESSAGE Alerta JOptionPane.WARNING_MESSAGE

    Erro JOptionPane.ERROR_MESSAGE Vazio (somente mensagem) JOptionPane.PLAIN_MESSAGE showConfirmDialog()

    As caixas de dilogo de confirmao so pequenas janelas que possibilitam ao usurio responder algum questionamento por meio dos botes "YES, NO e CANCEL". Uma vez apresentada na tela, o usurio escolhe uma das opes e, dependendo do boto clicado, gerado um valor inteiro pertencente classe JOptionPane:

    YES_OPTION = 0; NO_OPTION = 1;

    CANCEL_OPTION = 2.

    Estes valores so utilizados para conhecer qual dos botes foi clicado pelo usurio.

    Existem trs tipos de caixa de dilogo de confirmao:

    Apresentam os botes YES e NO YES_NO_OPTION ou 0;

    Apresentam os botes YES, NO e CANCEL YES_NO_CANCEL ou 1;

    Apresentam os botes OK e CANCEL OK_CANCEL_OPTION ou 2.

  • Sintaxe:

    JoptionPane.showConfirmDialog(Component, , , , ).

    A nica diferena entre essa sintaxe e a sintaxe da caixa de mensagem (showMessageDialog()) se refere ao parmetro no qual so inseridos os botes que aparecero na caixa de dilogo.

    showInputDialog()

    As caixas de dilogo de entrada so geradas a partir do mtodo showInputDialog() e so utilizadas para fazer uma pergunta ao usurio e solicitar a entrada de um texto. Esse texto ser armazenado em uma varivel qualquer do tipo String. A sintaxe usada na criao de caixas de dilogo de entrada praticamente a mesma usada nas caixas de mensagem. Sintaxe:

    JoptionPane.showInputDialog(Component, , , , ).

    showOptionDialog()

    As caixas de dilogo de opo so geradas a partir do mtodo showOptionDialog() e so bem complexas. So capazes de combinar todos os recursos j vistos nas outras caixas de dilogo. Sintaxe:

    JOptionPane.showOptionDialog(Component, , , , , , ,

    ).

    Onde:

    Botes presentes: Um tipo de caixa que utiliza as variveis YES_NO_OPTION, YES_NO_CANCEL_OPTION ou OK_CANCEL_OPTION. Deve-se utilizar o 0(zero) caso outros botes sejam utilizados no lugar destes.

    Tipo de mensagem: Uma das variveis de pergunta, informao, alerta, ou erro;

    cone: Um objeto ImageIcon a ser apresentado no lugar de um dos cones do argumento anterior (). Se nenhum cone for usado, deve-se colocar a palavra "null" no lugar desse argumento.

    Array de objetos: um array de objetos que contm os componentes ou outros objetos que representam as escolhas da caixa de dilogo, caso YES_NO_OPTION, YES_NO_CANCEL_OPTION ou OK_CANCEL_OPTION no esteja sendo utilizado.

    Seleo Padro: O objeto que representa a seleo padro, caso as opes YES_NO_OPTION, YES_NO_CANCEL_OPTION ou OK_CANCEL_OPTION no estejam sendo usadas.

    Exemplos da utilizao dos mtodos vistos: import javax.swing.JOptionPane;

  • public class TesteJOptionPane { public static void main(String args[]){ int resposta = JOptionPane.NO_OPTION;

    while (resposta == JOptionPane.NO_OPTION){

    String sexo = JOptionPane.showInputDialog(null, "Digite seu sexo.//Exemplo de utilizao do metodo showInputDialog() \nM para masculino e F para feminino" , "Definir sexo", JOptionPane.PLAIN_MESSAGE); if (sexo.equalsIgnoreCase("M")){

    JOptionPane.showMessageDialog(null, "Voc do sexo masculino!",//Exemplo de utilizao do metodo showMessageDialog() "Sexo Masculino", JOptionPane.INFORMATION_MESSAGE);

    } else if (sexo.equalsIgnoreCase("F")){JOptionPane.showMessageDialog(null, "Voc do sexo feminino!", "Sexo Feminino", JOptionPane.INFORMATION_MESSAGE);

    } else{ JOptionPane.showMessageDialog(null, "Sexo invlido", "Invalido",JOptionPane.ERROR_MESSAGE); }

    resposta = JOptionPane.showConfirmDialog(null, "Deseja encerrar o} JOptionPane.showMessageDialog(null, "O programa ser encerrado",//Exemplo de utilizacao do metodo showConfirmDialog() programa?", "Encerrar", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); "Finalizar", JOptionPane.WARNING_MESSAGE);

    System.exit(0); } import javax.swing.JOptionPane; public class TesteJOptionPane2 {public static void main(String[] args) {

    String[] escolha = {"entre 1 e 20 anos", "entre 21 e 40 anos", "mais de 40 anos"};

    //Exemplo da utilizao do metodo showOptionDialog()int resp = JOptionPane.showOptionDialog(null, "Qual sua idade?", "Idade", 0, JOptionPane.QUESTION_MESSAGE, null, escolha, escolha[0]);

    System.exit(0); String idade = escolha[resp]; JOptionPane.showMessageDialog(null, "Foi informado: " + idade, "Informao", JOptionPane.INFORMATION_MESSAGE); }

    As Classes I/O

    Existe ainda uma outra forma de realizar entrada e sada. As classes I/O DataInputStream e DataOutputStream podem ser utilizadas em conjunto com os atributos System.in e System.out para entrada e sada de dados pelo teclado via console.

    Exemplo:

  • import java.io.DataOutputStream;import java.io.DataInputStream;import java.io.IOException;public class TesteDataOutputStream { public static void main(String[] args) {

    // Utilizacao da classe DataOutputStream em conjunto com System.out DataOutputStream saida = new DataOutputStream (System.out);

    // Utilizacao da classe DataInputStream em conjunto com System.in DataInputStream entrada = new DataInputStream (System.in); try{ byte b[] = new byte[50]; saida.writeBytes("Digite o seu nome\n");

    entrada.read(b);String m = new String(b).trim();saida.writeBytes("O nome digitado foi: "); saida.writeBytes(m); //descarrega (na tela) o que esta armazenado no objeto saida saida.flush();

    } catch (IOException e){System.out.println(); CAIXADEDILOGOCOMDIVERSOSBOTESPERSONALIZADOS

    publicstaticvoidmain(String[]args){Stringnome,estadoCivil;nome=JOptionPane.showInputDialog("DigiteoseuNome");estadoCivil=JOptionPane.showInputDialog("DigiteseuestadoCivil");JOptionPane.showMessageDialog(null,"onomedigitado"+nome+"\nOestadocivil:"+estadoCivil););}}