Interface Gráfica em JAVA Utilizando o NetBeans PDF
Interface Gráfica em JAVA Utilizando o NetBeans PDF
Interface Gráfica em JAVA Utilizando o NetBeans PDF
2DepoisnaopoescolheroprojetoclicaremJava.
3DepoisnaopoprojetoclicaremAplicativodareadetrabalhoJava.
3DepoisclicarnoBotoProximo. 4DepoisclicarnoBotoProximo.
5DepoisdarnomeaoProjetoedepoisclicarnoBotoFinalizar.
6Prontosuainterfaceestcriadaagorascriaroslayoutsdastelas.
7Doladodireitoficaapaletadecomponenteseaspropriedades.
EXEMPLO: Criar uma interface que mostre o nome que foi digitado no Text no momento em que se clicarnobotoOK.
CRIANDOUMACALCULADORAEMJAVA
Primeiramente, vamos criar um novo aplicativo Java. No tutorial est sendo utilizado a IDE do Netbeans.
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.
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.
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){ o calculo int res = 0; // resultado // declaramos as variveis necessarias para
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 calcul ar // 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); } }
CLASSEJOPTIONPANE
A 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 0 1 2 YES_OPTION NO_OPTION CANCEL_OPTION Equivale ao clicar no boto Yes (sim) ao clicar no boto No (no) 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.
JoptionPane.showMessageDialog(Component, <mensagem>, <ttulo da menagem>, <tipo de mensagem>) 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
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, <mensagem>, <ttulo da menagem>, <botes presentes>, <tipo de mensagem>). A nica diferena entre essa sintaxe e a sintaxe da caixa de mensagem (showMessageDialog()) se refere ao parmetro <botes presentes> 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, <mensagem>, <ttulo da menagem>, <botes presentes>, <tipo de mensagem>). 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, <mensagem>, <ttulo da menagem>, <botes presentes>, <tipo de mensagem>, <cone>, <array de objetos>, <seleo padro>). 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 (<tipo de mensagem>). 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 int resposta = JOptionPane.NO_OPTION; args[]){ 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, "o nome digitado " +nome+ "\nO estado civil :"+estadoCivil);); } }