A principal função de uma caixa de diálogo é que um aplicativo ou site recupere alguma entrada do usuário. Essa entrada pode ser um reconhecimento de que eles leram uma mensagem ou algo que inseriram em uma área de texto.
Uma caixa de diálogo captura imediatamente a atenção do usuário. É uma ferramenta perfeita para coletar ou exibir informações importantes.
Java é uma linguagem diversificada que fornece várias classes para criar caixas de diálogo. Essas classes incluem JOptionPane, JDialog e JFrame.
A classe JOptionPane
Você pode criar uma caixa de diálogo padrão usando um dos vários métodos estáticos pertencentes à classe JOptionPane. Esses incluem:
- showMessageDialog(), que retransmite uma mensagem para o usuário.
- showConfirmDialog(), que faz uma pergunta que requer confirmação.
- showInputDialog(), que solicita a entrada de um usuário.
- showOptionDialog(), que é uma combinação dos três outros métodos.
Criando uma caixa de diálogo JOptionPane
importar javax.swing. JFrame;
importar javax.swing. JOptionPane;públicoaulaJOptionPaneApp{
JOptionPaneApp() {
Quadro JFrame = novo JFrame();
JOptionPane.showMessageDialog (frame, "Esta é uma janela de mensagem JOptionPane.");
}
públicoestáticovazioa Principal(String[] argumentos){
novo JOptionPaneApp();
}
}
O código acima cria a seguinte caixa de diálogo:
Embora JOptionPane forneça caixas de diálogo padrão, ele tem muitas opções que permitem ajustar seu comportamento. Por exemplo, a caixa de diálogo de mensagem pode ser de vários tipos. A imagem acima é um exemplo de INFORMAÇÃO_MESSAGE, que é o padrão. Os outros tipos de mensagem são:
- MENSAGEM DE ERRO
- MENSAGEM DE AVISO
- QUESTION_MESSAGE
- PLAIN_MESSAGE
Criando uma mensagem de erro
Aqui está um exemplo de como usar um tipo de mensagem diferente para sua caixa de diálogo JOptionPane:
JOptionPane.showMessageDialog (frame, "Esta é uma janela de mensagem de erro JOptionPane.",
"Erro", JOptionPane. MENSAGEM DE ERRO);
Substitua o showMessageDialog() linha no programa original com a linha de código acima, e você verá a seguinte caixa de diálogo de erro:
A classe JDialog
A classe JDialog permite criar caixas de diálogo personalizadas. Esse classe Java pertence aos javax.swing pacote e estende a classe Dialog. Tem acesso a uma ampla variedade de métodos diretos e indiretos. Esta classe Java tem um total de 16 Construtores Java.
Além do construtor padrão, cada um dos outros 15 recebe um quadro, uma janela ou uma caixa de diálogo com uma combinação de vários outros argumentos.
Os construtores JDialog primários incluem:
- JDialog() cria uma caixa de diálogo sem um quadro, título ou modo.
- JDialog (proprietário da caixa de diálogo, título da string, modal booleano) cria uma caixa de diálogo com um proprietário de diálogo, um título de string e um modo.
- JDialog (proprietário do quadro, título da string, modal booleano) cria uma caixa de diálogo com um proprietário de quadro, um título de string e um modo.
- JDialog (proprietário da janela, título da string, modal booleano) cria uma caixa de diálogo com um proprietário de janela, um título de string e um modo.
Criando uma caixa de diálogo JDialog
importar java.awt. FlowLayout;
importar java.awt.event. AçãoEvento;
importar java.awt.event. ActionListener;
importar javax.swing. JButton;
importar javax.swing. JDialog;
importar javax.swing. JFrame;
importar javax.swing. JLabel;
importar javax.swing. Constantes da janela;públicoaulaJDialogAppName{
JDialogApp() {
Quadro JFrame = novo JFrame();
JDialog dialog = novo JDiálogo (quadro, verdadeiro);
dialog.setLayout(novo FlowLayout());JLabel displayText = novo JLabel("Esta é uma janela JDialog.");
JButton btn = novo JButton("OK");btn.addActionListener(novo ActionListener() {
públicovazioação executada(AçãoEvento e){
dialog.setVisible(falso);
}
});dialog.add (displayText);
dialog.add (btn);dialog.setSize(200,150);
dialog.setTitle("Janela de Diálogo");
dialog.setVisible(verdadeiro);
dialog.setDefaultCloseOperation (WindowConstants. DISPOSE_ON_CLOSE);
}
públicoestáticovazioa Principal(String argumentos[]){
novo JDialogApp();
}
}
O código acima cria a seguinte caixa de diálogo:
Há vários aspectos importantes do código que você deve observar. O programa utiliza o JDialog (proprietário do quadro, modal booleano) construtor, para o qual passa um JFrame e o valor “true” como argumentos. O JFrame é o proprietário do JDialog, o que significa que ele é responsável por exibir a caixa de diálogo. O valor “true” significa que a caixa de diálogo bloqueia a entrada para outras janelas relacionadas quando é exibida.
O construtor no código acima não recebe um título como argumento. No entanto, o proprietário do quadro precisa de um título. Então, para essa tarefa, você pode usar o setTitle() método, que está disponível através da classe Dialog que JDialog estende. Os outros métodos importantes no código são setVisível(), definirTamanho(), e setDefaultCloseOperation().
setVisible recebe um valor booleano e é responsável por exibir o quadro. setSize pega a altura e a largura da janela de diálogo. setDefaultCloseOperation usa um dos três valores para decidir o que acontece quando um usuário fecha a caixa de diálogo.
A classe JFrame
JDialog e JOptionPane usam a classe JFrame para criar caixas de diálogo. No entanto, a classe JFrame pode criar caixas de diálogo por conta própria. A classe JFrame estende a classe Frame e, assim como a classe JDialog, permite criar caixas de diálogo personalizadas.
O JFrame tem quatro construtores e vários métodos diretos e indiretos que você precisará usar para criar uma caixa de diálogo.
Criando uma caixa de diálogo JFrame
importar java.awt.event. AçãoEvento;
importar java.awt.event. ActionListener;importar javax.swing. JButton;
importar javax.swing. JFrame;
importar javax.swing. JLabel;
importar javax.swing. JPanel;
importar javax.swing. Constantes da janela;públicoaulaJFrameApp{
JFrameApp() {
Quadro JFrame = novo JFrame();
frame.setTitle("Janela de Diálogo");
Painel JPanel = novo JPanel();JLabel displayText = novo JLabel("Esta é uma janela JFrame.");
panel.add (displayText);
JButton btn = novo JButton("Botão OK");btn.addActionListener(novo ActionListener() {
públicovazioação executada(AçãoEvento e){
frame.setVisível(falso);
}
});painel.adicionar (btn);
frame.add (painel);
frame.setDefaultCloseOperation (WindowConstants. EXIT_ON_CLOSE);
frame.setSize(250, 150);
frame.setVisível(verdadeiro);
}
públicoestáticovazioa Principal(String[] argumentos){
novo JFrameApp();
}
}
O código acima cria a seguinte caixa de diálogo:
O código usa o construtor JFrame padrão e vários métodos familiares, como o setTitle() (usado no aplicativo JDialog acima). Um objeto desconhecido no programa acima é o JPanel, que é um contêiner genérico. Isso dá ao JFrame a flexibilidade de adicionar vários layouts e componentes a um quadro.
o ActionListener() e ação executada() métodos lidam com o evento de um usuário clicando no OK botão.
Qual classe Java é melhor para criar caixas de diálogo?
O único propósito da classe JOptionPane é tornar o processo de criação da caixa de diálogo mais conveniente para desenvolvedores Java. No entanto, se você precisar de uma caixa de diálogo mais personalizada, a classe JDialog é a próxima melhor opção.
A classe JFrame cria UIs, mas você pode usá-la para criar muitos elementos diferentes de uma GUI, incluindo caixas de diálogo.
A caixa de diálogo criada com a classe JFrame possui um ícone minimizado, enquanto as demais não. Se você deseja uma caixa de diálogo modal, na qual o usuário deve agir antes de concluir uma tarefa, o JFrame não é a melhor abordagem.
Como escrever seu primeiro aplicativo Java GUI
Leia a seguir
Tópicos relacionados
- Programação
- Programação
- Java
- Tutoriais de codificação
Sobre o autor
Kadeisha Kean é desenvolvedora de software full-stack e escritora técnica/tecnológica. Ela tem a habilidade distinta de simplificar alguns dos conceitos tecnológicos mais complexos; produzindo material que pode ser facilmente compreendido por qualquer novato em tecnologia. Ela é apaixonada por escrever, desenvolver softwares interessantes e viajar pelo mundo (através de documentários).
Assine a nossa newsletter
Junte-se à nossa newsletter para dicas de tecnologia, análises, e-books gratuitos e ofertas exclusivas!
Clique aqui para assinar