Linguagem de Programação Visual Unidade 4 - Introdução à API Swing - JOptionPane Curso Técnico em Informática
SUMÁRIO INTRODUÇÃO... 3 API SWING... 3 A CLASSE JOPTIONPANE... 3 PRINCIPAIS MÉTODOS DA CLASSE JOPTIONPANE... 4 showmessagedialog... 4 showinputdialog... 5 showconfirmdialog... 5 showoptiondialog... 6 BIBLIOGRAFIA... 7 2
INTRODUÇÃO Nesta unidade veremos uma introdução sobre a API Swing e conheceremos a classe JOptionPane e seus principais métodos. API SWING A linguagem Java oferece a capacidade de se criar aplicações com interfaces visuais requintadas. A primeira biblioteca para este fim foi a AWT (Abstract Window Toolkit kit de ferramentas de janelas abstrato). Ela se utiliza do sistema operacional para desenhar as janelas e componentes visuais (widgets). Em uma evolução posterior foi apresentada a biblioteca Swing, compatível com a AWT, porém de mais alto nível de abstração e de dependência do S.O. Sendo ela e a JVM responsáveis pela renderização (desenhar) das janelas e componentes, assim oferecendo telas e componentes com aparências muito semelhantes, independente do S.O. utilizado. Nossas aulas a partir de agora começarão a ser pautadas pela biblioteca Swing, onde trabalharemos a criação das interfaces visuais de nossos programas (o V view do padrão MVC). A CLASSE JOPTIONPANE Esta classe, pertencente à API Swing, permite criar caixas de diálogo simples e objetivas. Para sua utilização se faz necessária a importação do pacote: import javax.swing.joptionpane; Dica: a importação pode ser feita automaticamente pelo Netbeans ao digitar o nome da classe no código, quando utilizamos o recurso de autocompletar. Vale destacar que estas caixas de mensagens são exibidas no modo (em um jargão de desenvolvimento) modal. Isto quer dizer que o fluxo de execução é interrompido até que a caixa de mensagem seja fechada, retornando para a execução do código. 3
Principais Métodos da classe JOptionPane showmessagedialog Este método serve para criar uma caixa de mensagem simples. JOptionPane.showMessaDialog(parâmetros); Para começar vamos escrever o mais clássico dos programas para o aprendizado de todas as linguagens, o famoso Hello World. A ideia é criar um programa que apresente uma caixa de mensagem com o texto Olá Mundo!. 1. Crie um projeto no NetBeans com o nome exemplo, com uma classe principal. 2. Dentro desta classe principal coloque a seguinte linha de código dentro do método main: public static void main(string[] args) { JOptionPane.showMessageDialog(null, "Olá Mundo!"); } Obs: não esqueça da importação da classe JOptionPane. Agora vamos rodar o programa. Tecle shift+f6. Isto deve apresentar uma janela como a da figura 1: Figura 1 Vamos analisar a linha de comando: JOptionPane.showMessageDialog(null, "Olá Mundo!"); Aqui o método estático showmessagedialog( ) da classe JOptionPane é invocado com dois parâmetros. O primeiro indica o componente pai (ao qual a caixa de mensagem estará vinculada e centralizada) em nosso exemplo não foi vinculado a qualquer componente (null). O segundo parâmetro é o conteúdo da mensagem. Se verificarmos a API do Swing, veremos que a mensagem é descrita 4
com o tipo Object, ou seja, o método apresenta o resultado do método tostring() do objeto fornecido como parâmetro para o showmessagedialog. Explorando um pouco mais a API (pelo JavaDoc ou code completion) veremos que o método showmessagedialog possui outras variações, que permite alterar o título da caixa de mensagem e o tipo de caixa de mensagem. showinputdialog Esta caixa de mensagem permite que o usuário escreva algum valor em um campo, valor este que é retornado em forma de String para o programa após o fechamento sem falhas da caixa (botão OK). JoptionPane.showInputDialog(parâmetros); Solicitando um dado do tipo texto, por exemplo, o nome: String nome = JOptionPane.showInputDialog("Informe seu nome: "); JOptionPane.showMessageDialog(null,"O nome informado foi "+nome); Observe a caixa de diálogo resultante na figura 2: Figura 2 Solicitando um dado do tipo número (observe que ao armazenar na variável é necessário realizar o parsing, pois o método retorna sempre em formato de String): int idade = Integer.parseInt(JOptionPane.showInputDialog("Informe sua idade: ")); JOptionPane.showMessageDialog(null, "A idade informada foi: " + idade); showconfirmdialog Exibe uma caixa de diálogo de confirmação. Ela pode apresentar as opções Ok, Cancelar e Não, ou também somente Ok e Cancelar, conforme a configuração. Ela retorna um número inteiro com a opção escolhida, sendo 0 o primeiro botão, 1 o segundo botão e 2 o terceiro botão, quando houver. 5
JoptionPane.showConfirmDialog(parâmetros); Solicitando uma confirmação de exclusão, com as opções Ok e Cancelar: int escolha = JOptionPane.showConfirmDialog(null, "Confirma exclusão?", "Confirmação", JOptionPane.OK_CANCEL_OPTION); if(escolha == 0 ){ JOptionPane.showMessageDialog(null, Exclusão confirmada! ); }else{ JOptionPane.showMessageDialog(null, Exclusão cancelada! ); } Observe na figura 3 como a caixa de diálogo é apresentada: Figura 3 showoptiondialog Exibe uma caixa de diálogo que permite configurar as opções de escolhas, retornando um número que representa a escolha do usuário conforme a ordem das opções (sendo a primeira opção representada por 0). Não é indicada para uma quantidade muito grande de opções. As opções podem ser construídas num array de Strings. JoptionPane.showOptionDialog(parâmetros); O exemplo abaixo apresenta um array de Strings, e em seguida o comando para apresentar a janela contendo as opções de cores. String[] cores = {"Azul","Amarelo","Verde"}; int escolha = JOptionPane.showOptionDialog(null,"Escolha a cor desejada:", "Opções de cores",joptionpane.yes_no_option, JOptionPane.INFORMATION_MESSAGE,null,cores, null); Observe na figura 4 como a caixa de diálogo é apresentada: 6
Figura 4 BIBLIOGRAFIA ORACLE. Class JOptionPane. Disponível em: http://docs.oracle.com/javase/7/docs/api/javax/swing/joptionpane.html. 7