As caixas de diálogo são ferramentas que fornecem modos interativos para processos de diálogo humanos-computador. O aplicativo fornece informações ao usuário através de uma caixa de diálogo ou obtém informações do usuário. Uma caixa de diálogo é uma janela temporária onde você pode colocar controles para obter a entrada do usuário. No swing, existem duas classes de diálogo, que são a classe JDialog e a classe JoptionPane. A classe JDialog fornece a construção e o gerenciamento de caixas de diálogo comuns;
Classe JDialog
A classe JDialog serve como a classe base para a caixa de diálogo. As caixas de diálogo são diferentes das janelas gerais.
As caixas de diálogo são divididas em obrigatória e não obrigatória. A caixa de diálogo obrigatória não pode interromper o processo de diálogo até que a caixa de diálogo seja concluída e o programa não responderá a eventos fora da caixa de diálogo. Uma caixa de diálogo não obrigatória pode interromper o processo de diálogo e responder a eventos fora da caixa de diálogo. O tipo forçado também é chamado de caixa de diálogo de modo, e a caixa de diálogo não forçada também é chamada de caixa de diálogo que não é modo.
Os objetos JDialog também são um contêiner, para que você também possa atribuir um gerenciador de layout à caixa de diálogo JDialog. No entanto, os componentes não podem ser adicionados diretamente à caixa de diálogo. Como uma caixa de diálogo depende de uma janela, para criar uma caixa de diálogo, você deve primeiro criar uma janela.
Existem 3 construtores comumente usados para a classe JDialog:
Existem vários outros métodos comuns da classe JDialog:
[Exemplo] O applet declara uma classe de janela do usuário e uma classe de diálogo. Digite as informações correspondentes na caixa de diálogo e pressione o botão OK na caixa de diálogo. Determine o método de monitoramento do botão, transfira as informações inseridas na caixa de diálogo para a janela do usuário e exiba as informações de seleção na caixa de texto correspondente da janela do usuário.
importar java.applet.*importar javax.swing.*; importar java.awt. Private JTEXTFIELD1, Text2; (100,100); = Novo JTEXT (20); estático void retur nname (string s) {if (flg == 1) text1.settext ("A fruta selecionada é:"+s); +s); 1; Título JLabel; nome "); text = new jtextfield (10); text.seteditable (true); con.setLayout (new FlowLayout ()); Con.SetSize (200.100); setModal (false); done = New Jbutton (" OK ") TODO. ;O exemplo acima cria uma caixa de diálogo obrigatória. Dessa forma, você pode ver o efeito de alguns diálogos na interface.
Altere o exemplo acima para uma caixa de diálogo não obrigatória com apenas uma pequena quantidade de alterações. Primeiro, altere o código "super (f, s, true);" no método da caixa de diálogo para "super (f, s, false);".
A segunda alteração: Acontece que o método returnName () é chamado ao responder ao evento de botão Confirmar e a sequência obtida pela caixa de diálogo é retornada ao programa. Agora, quando a sequência de seleção de entrada da caixa de texto termina, o método deve ser chamado imediatamente. Para fazer isso, você precisa monitorar os eventos de entrada na caixa de texto e registrar o monitor para o texto:
public void ActionPerformed (ActionEvent e) {if (e.getSource () == text) {myWindow.RETURNNAME (text.getText ()); text .getText ());Classe JoptionPane
Geralmente, é encontrado situações de diálogo muito simples. A classe JoptionPane fornece um conjunto de métodos estáticos para permitir que os usuários selecionem um certo tipo de caixa de diálogo. O código a seguir é a caixa de diálogo de verificação:
int resultado = joptionpane.showConfirmdialog (pai, "você realmente quer sair?", "Sair confirmar", joptionpane.yes_no_cancel_option);
O texto "Confirmar" na parte média do nome do método é o tipo de criação de uma caixa de diálogo, e o texto confirma indica que a caixa de diálogo de confirmação está selecionada. Altere o texto confirmar para um dos outros três tipos e se torna a caixa de diálogo Tipo correspondente. O significado dos quatro parâmetros do código acima é: o primeiro parâmetro especifica a janela dos pais desta caixa de diálogo; Especifica que a caixa de diálogo possui três botões são "Sim (y)", não (n) e "Desfazer". O resultado de retorno do método é o resultado do usuário responder a essa caixa de diálogo, consulte as respostas possíveis fornecidas na Tabela 11-5.
A caixa de diálogo de entrada solicita o usuário para inserir informações de seleção no formulário de uma lista ou caixa de texto. Aqui está um código esquemático para uma caixa de diálogo de entrada que seleciona um projeto em execução na lista:
String result = (String) JoptionPane.showInputDialog (Parent, "Por favor, selecione um esporte", "Esta é a caixa de diálogo de seleção de esportes", JoptionPane.Question_Message, NULL, NOVO Objeto [] {"Play Football", "Jogue basquete", " correndo "," salto de pular "}," executando "); O quarto parâmetro é o tipo de informação, o quinto parâmetro não tem efeito especial aqui e é sempre nulo; A caixa de diálogo também inclui os botões OK e Desfazer.
Caixa de diálogo JoptionPane Tipo
Resultados retornados pela caixa de diálogo JoptionPane
Opções de tipo de informação para a caixa de diálogo JoptionPane
Às vezes, o programa simplesmente gera algumas informações e não exige que o usuário tenha feedback. Essa caixa de diálogo pode ser criada com a seguinte forma de código:
JoptionPane.ShowMessagedialog (Parent, "Este é um programa Java", "Eu sou a caixa de diálogo Informações de saída", JoptionPane.Plain_Message);
O significado dos três primeiros parâmetros no código acima é o mesmo descrito acima, e o parâmetro final é que o tipo de informação é especificado para não incluir nenhum ícones.