Java - Diálogos

De Aulas

Afluentes: Programação em Java

Diálogos

  • Um diálogo é uma maneira de conseguir com que o usuário realize uma entrada de dados.
  • Existem vários tipos de diálogos - você já devem usar há algum tempo...
  • Todo diálogo é dependente de um frame.
    • Destruir um frame destrói todos os diálogos que são seus dependentes;
    • Quando um frame é minimizado, somem da tela todos os seus diálogos;
    • Eles voltam quando o frame volta ao seu tamanho normal
  • Um diálogo pode ser modal. Quando um diálogo modal está visível, todas as entradas para outros componentes estarão bloqueadas.


  • Para criar diálogos customizados, use a classe JDialog diretamente.
  • O Swing provê vários diálogos padrões:
JProgressBar, JFileChooser, JColorChooser, ...
  • A classe JOptionPane pode ser usada para criar diálogos modais simples, que permitem a costumização de ícones, títulos, textos e botões.

JOptionPane

  • JOptionPane faz com que seja fácil exibir um diálogo padrão que leia um valor do usuário ou informe-o de algo.
  • A classe JOptionPane pode parecer complexa dado o seu grande número de métodos.

• Entretanto, a maioria dos uso desta classe são simplesmente chamadas de uma única linha para um dos métodos estáticos showXxxDialog.

showXxxDialog
  • showConfirmDialog: Faz uma pergunta confirmatória e espera uma resposta tal como yes/no/cancel.
  • showInputDialog: Lê entrada do teclado (velho conhecido)
  • showMessageDialog: Informa ao usuário que algo aconteceu.
  • showOptionDialog: Os três anteriores em um só.

Exemplo

Dialog01.png
 1import javax.swing.JOptionPane;
 2
 3public class Dialogo01 {
 4    public static void main(final String[] args) {
 5        final Object[] options = {
 6            "Entro na caverna",
 7            "Continuo pela estrada",
 8            "Me escondo e observo"
 9        };
10        final int n = JOptionPane.showOptionDialog(
11            null,
12            "Você está caminhando na estrada, vê uma caverna e ouve um barulho. O que você faz?",
13            "Ação",
14            JOptionPane.YES_NO_CANCEL_OPTION,
15            JOptionPane.QUESTION_MESSAGE,
16            null,
17            options,
18            options[2]
19        );
20        String consequencia = "";
21        switch (n) {
22            case 0:
23                consequencia = "Está muito escuro e não dá para enxerga nada. " +
24                "Você sente uma pancada na cabeça e apaga.";
25                break;
26            case 1:
27                consequencia = "Você segue pela estrada mas é perseguido por um grupo de bandidos.";
28                break;
29            case 2:
30                consequencia = "Sai da caverna um grupo de bandidos e seguem pela estrada que você caminhava.";
31                break;
32
33        }
34        JOptionPane.showMessageDialog(
35            null,
36            consequencia,
37            "Consequencia",
38            JOptionPane.INFORMATION_MESSAGE
39        );
40    }
41}

Atividade 1

Utilizando o recurso de Diálogos (JOptionPane) faça o usuário participar de uma história, podendo escolher diferentes destinos. Use sistema de escolha por botões e quando for para o usuário responder algo, tal como em uma conversa, use um diálogo para pegar o texto. No final, apresente a história toda em um campo texto de uma JFrame, conforme as escolhas feitas pelo usuário.

Exemplo

Tplnote Bulbgraph.png

INTRODUÇÃO: Você é xerife da cidade e soube que um bando conhecido como MATADORES fugiu da prisão. Foi você que os prendeu após o roubo de um banco, o dinheiro nunca foi achado. <- Apenas informação

PERGUNTA: Qual seu nome? <- entrada de texto RESPOSTA: Bill McDuct

PERGUNTA: Você entra em um bar e vai ao balçao, você pede: [cerveja] [wisky] [água] <- botões de escolha RESPOSTA: [cerveja]

PERGUNTA: O barista pergunta: O que te preocupa, xerife? <- responder com texto RESPOSTA: Se alguém aqui sabe algo dos MATADORES, a hora é agora.

PERGUNTA: Um sujeito que estava sentado em uma mesa encara você e coloca a mão em sua arma, o que você faz? [saca sua arma] [continua quieto] RESPOSTA: [saca sua arma]

... <- Continua a história

CONTA A HISTÓRIA TODA DEPOIS DE TERMINAR:

Um bando conhecido como MATADORES escapou da prisão. Esse grupo foi preso pelo grande xerife Bill McDuct logo após o assalt à um banco e o dinheiro do assalto nunca foi encontrado. É muito provavel que eles estejam na região para recuperar o dinheiro e se vingar de Bill McDuct.

Bill McDuct fica sabendo da fuga e sai para investigar, entra em um bar e pede cerveja para o barista. O barista serve a bebida e pergunta:

- O que te preocupa, xerife?

Bill McDuct toma sua bebida e sem encarar ninguém, com os olhos fixos em seu copo pergunta:

- Se alguém aqui sabe algo dos MATADORES, a hora é agora.

Um sugeito que estava em uma mesa encara Bill McDuct e coloca a mão em sua arma, sem movimentos bruscos. O ambiente fica tenso e ninguém se mexe. Bill McDuct percebe a movimentação do sujeito pelo canto do olho e saca sua arma.

... <- Continua a história