Você está na página 1de 6

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, <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 Pergunta Informao Alerta Erro Vazio (somente mensagem) showConfirmDialog()

Comando JOptionPane.QUESTION_MESSAGE JOptionPane.INFORMATION_MESSAGE JOptionPane.WARNING_MESSAGE JOptionPane.ERROR_MESSAGE JOptionPane.PLAIN_MESSAGE

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 botes foi clicado pelo usurio. para conhecer qual dos

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>, <botes presentes>, <tipo de mensagem>). <ttulo da menagem>,

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 informao, alerta, ou erro; variveis de pergunta,

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 args[]){ int resposta = JOptionPane.NO_OPTION; while (resposta == JOptionPane.NO_OPTION){ //Exemplo de utilizao do metodo showInputDialog() String sexo = JOptionPane.showInputDialog(null, "Digite seu sexo. \nM para masculino e F para feminino" , "Definir sexo", JOptionPane.PLAIN_MESSAGE); if (sexo.equalsIgnoreCase("M")){ //Exemplo de utilizao do metodo showMessageDialog() JOptionPane.showMessageDialog(null, "Voc do sexo masculino!", "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); }

//Exemplo de utilizacao do metodo showConfirmDialog() resposta = JOptionPane.showConfirmDialog(null, "Deseja encerrar o programa?", "Encerrar", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); } JOptionPane.showMessageDialog(null, "O programa ser encerrado", "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]); String idade = escolha[resp]; JOptionPane.showMessageDialog(null, "Foi informado: " + idade, "Informao", JOptionPane.INFORMATION_MESSAGE); System.exit(0); } }

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 import import public java.io.DataOutputStream; java.io.DataInputStream; java.io.IOException; 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(); } } }

Você também pode gostar