JFrame. JLabel : Utilizado como rótulo para exibição de texto e ícones. Interface Gráfica de JAVA - Graphical User Interface (GUI)



Documentos relacionados
JAVA. Marcio de Carvalho Victorino. Interface Gráfica em Java (GUI)

PROGRAMAÇÃO ORIENTADA A OBJETOS -INTERFACES GRÁFICAS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Swing. Page 1. Swing. Prof. Anderson Augustinho Uniandrade

Arquitetura de Tratamento de Eventos em Programas com GUI - Graphical User Interface

Java Foundation Classes Coleção de pacotes para criação de aplicações completas Desktop Interfaces gráficas (GUIs- Graphical User Interface)

INTERFACE COM O USUÁRIO (em Java) Programação Orientada a Objetos

8. Interfaces Gráficas de Usuário

Aplicações Gráficas com AWT

Programação III. Interface Gráfica - Swing. Interface Gráfica Swing Jocélio Passos joceliodpassos@bol.com.br. Interface Gráfica - Swing

Pacote Java Swing Parte 1

MÓDULO 4 SWING Parte 3

Tratamento de Eventos

Técnicas de Programação II

Aula 11: Interfaces gráficas (1/2): elementos de interface Swing

Caso não exista nenhum listener registado no objecto que gera o evento, este não terá qualquer efeito.

Desenvolvimento de Aplicações Desktop

AWT Versus Swing. Java Deployment Course: Aula 5. por Jorge H C Fernandes (jhcf@di.ufpe.br) CESAR-DI-UFPE Recife, 1999

Interface com o Usuário (UI) UIs Desacopladas (2/3) BSI Bacharelado em Sistemas de Informação LOO Linguagens Orientadas a Objetos

Interface Gráfica com o Usuário (GUI) Profa. Isabel Harb Manssour (Material adaptado das aulas da Profa. Luciana Nedel e do Prof.

Interface Gráficas Parte I. Bruno Crestani Calegaro

Programação Gráfica em Java.

Prof. Fernando V. Paulovich 25 de julho de SCC Programação Orientada a Objetos

JTABLE STUDENT CONTROL JSC Gil Eduardo de Andrade / Emílio Rudolfo Fey Neto

Programação Orientada a Objetos

Curso Java Starter. 1

JCheckbox JRadioButton JComboBox JList JMenu... Alguns componentes já vistos em aula JButton JLabel JTextField

Java - Swing. Raphaela Galhardo raphaela@j2eebrasil.com.br

Módulo 7. Interface Gráfica com o Usuário GUI - Introdução. Programação Orientada a Objetos I Java (Rone Ilídio)

Curso de Java Módulo II Swing Fábio Mengue Centro de Computação - Unicamp

Exercícios 07 Introdução à POO (Interface Gráfica)

Gerenciadores de Layouts

Interface Gráfica. Prof. Marcelo Cohen. (material da Profa. Luciana Nedel) Graphical User Interface (GUI)

Programação Orientada a Objetos II

Programação Orientada a Objetos em Java. GUI Graphical User Interface

Interfaces Gráficas (GUIs) em Java usando Swing Parte I - O básico

Linguagem Java - Prof. Luciana Porcher Nedel 1. Um container genérico e visual. Ela trabalha em cooperação com o controle de layouts.

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

Construção de Interfaces Gráficas

Eclipse IDE Dá-se importância aos antepassados quando já não temos nenhum. Francois Chateaubriand

Objectivos:. Construir programas com interfaces gráficas Graphical User Interface (GUI) application programs

Capítulo 12 Eventos de interacção

Criação de Applets Package: Class Name Base Class: Generate header comments: Can run standalone: Generate Standard methods:

1 Criando um aplicativo visual em Java

1) De acordo com o trecho de código escrito na linguagem JAVA, responda a questão abaixo:

Programação Java. Construção de Interface gráfica. Processo Básico: OO + Eventos. Exemplo

Interface Gráfica. Prof. Marcelo Cohen

Aplicação Linguagem de Programação Orientada a Objeto

JFC/Swing. Java Avançado Interface Gráfica JFC/Swing. Introdução JFC / Swing. Introdução JFC / Swing

Programação de Interfaces Gráficas. Aula 1. Carlos Eduardo de Carvalho Dantas

Construção de Interfaces Gráficas - Introdução

Aula 12 POO 1 Interface Gráfica no Java. Profa. Elaine Faria UFU

Entender princípios de projeto. Capacitação para construir GUIs. Entender os pacotes que contém componentes de GUI, e as classes e interfaces de

Programação Orientada a Objetos II

Introdução à Programação. Interfaces Gráficas

Curso de Aprendizado Industrial Desenvolvedor WEB

Como construir aplicaçõ e applets

Sistema de Recursos Humanos

Fundamentos de GUIs. João Carlos Pinheiro. Última Atualização Junho / 2004 Versão: 3.0

Roteiro para criação de Applet

Interface Gráfica. LPG II Java Interface Gráfica AWT. Introdução. AWT - Abstract Window Toolkit

Tutorial de Computação Introdução a Programação Gráfica em Java para MEC1100 v

Introdução à Programação Gráfica em Java

Natureza do Software e dos Sistemas

Programação Gráfica em Java Alguns Componentes javax.swing

CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA A F B G C H D I

JAVA. Gerenciadores de Layout. Tiago Alves de Oliveira

JAVA APLICAÇÕES GRÁFICAS Propriedades Utilizadas: imagecomposite FACULDADE DE TECNOLOGIA SENAC PELOTAS

Aula 09 - Atualização de uma tabela dinâmica. Aula 09 - Atualização de uma tabela dinâmica. Sumário. Atualizando a tabela dinâmica

Programação Java. Construção de Interfaces com Swing (I)

Jframe, JDialog ou JApplet

Introdução à Tecnologia Java 02/2012. Java Aula 04 MDI. 05/09/2012 Celso Olivete Júnior.

Elaborando Interfaces. Prof. André Aparecido da Silva Disponível em: Aulas 16, 17, e 18

Sumário Introdução à 3a. Edição Introdução Dia 1 - Conceitos Iniciais Dia 2 - Bem-vindo ao Mundo Real... 43

Criando interfaces com o usuário. Continuação

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 1- Interfaces Gráficas com Swing

{ System.exit(0); Exemplo (WindowAdapter) import java.awt.*; import java.awt.event.*;

Jogo Da Velha. - Parte 1 - Fazendo a parte gráfica do jogo da Velha

Microsoft Office PowerPoint 2007

Desenvolvendo aplicações

Tratamento de Eventos em Programas com GUI - Graphical User Interface. Jorge H. C. Fernandes UFRN Junho de 2001

Programação Visual em Java

Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.

Banco de Dados BrOffice Base

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

ANDRÉ APARECIDO DA SILVA APOSTILA BÁSICA SOBRE O POWERPOINT 2007

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

UNIPAC-TO POOII. Java NetBeans. Aplicações visuais e componentes. Giovanni Camargo Silva giovanni@unipato.com.br

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

O programa abaixo exemplifica o uso da classe Image para carregar e mostrar uma imagem localizada em um arquivo.

Fluxo de trabalho do Capture Pro Software: Indexação de código de barras e separação de documentos

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

Universidade Federal de Santa Maria UFSM Centro de Tecnologia CT. Power Point. Básico

Programação Orientada a Objetos Flávio de Oliveira Silva 217

Criação de telas com Swing

Slide 1 Deitel/Deitel, 8e. Java Como programar Copyright 2010 Pearson Education

JAVA APLICAÇÕES GRÁFICAS Propriedade Utilizada: FontSizeAnimation

APÊNDICES. Curso de Word Avançado Adicione um apêndice ao seu documento

LIÇÃO 1 - USANDO O GRAVADOR DE MACROS

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

Transcrição:

Interface Gráfica de JAVA - Graphical User Interface (GUI) Para que o usuário possa interagir com a aplicação é necessário que haja uma interface para que este acione as funcionalidades do programa. JAVA fornece classes que são utilizadas para construir interfaces gráficas com usuário que ajudam na interação deste com a máquina e deixam os programas mais robustos e elegantes. Existe uma infinidade de funcionalidades disponíveis nas bibliotecas de classes Java, destinadas a prover a comunicação homem-máquina gráfica. Os elementos básicos necessários para criar um GUI residem em dois pacotes: java.awt: Abstract Windowing Toolkit (classes básicas); javax.swing: Swing Components - fornece melhores alternativas aos componentes definidos na classe java.awt. É nestas classes onde encontramos classes de janelas, botões, menus, painéis, botões de opções, entre outros componentes, que podem ser estendidos e utilizados em nossas aplicações. Swing é mais flexível que java.awt porque é implementada toda em Java, enquanto que java.awt é implementada em código nativo. Uma interface gráfica em Java é baseada em dois elementos: Containers: servem para agrupar e exibir outros componentes JFrame JPanel Componentes: JLabel JButton JTextField JScrollPane JCheckBox JComboBox JRadioButton JList JTable JMenuBar, JMenu e JmenuItem Outros elementos importantes que também serão tratados são: JOptionPane: showmessagedialog e showconfirmdialog Layouts: FlowLayout, GridLayout, BorderLayout e GridBagLayout Tratamento de Eventos Definindo uma janela é dada através da classe JFrame, que serve como container para outros componentes, como botões, imagens ou painéis. O JFrame possui atributos que definem uma janela, como barra de título e borda. O JPanel é um container simples que pode ser utilizado para acrescentar componentes em uma janela, que será utilizado mais tarde. JFrame. Exemplo 1: Instanciando um JFrame. public class JanelaJFrame { JFrame janela = new JFrame("Minha Primeira Janela"); janela.setdefaultcloseoperation(jframe.exit_on_close); //define o que fazer quando a janela for fechada janela.setsize(800,600); //define o tamanho da janela janela.setvisible(true); //exibe a janela JLabel : Utilizado como rótulo para exibição de texto e ícones. Exemplo 2: Montando uma interface com o JLabel. public class JanelaJFrame extends JFrame { JLabel label1; JLabel label2; JLabel label3; JLabel label4 = new JLabel("Rótulo 4", JLabel.CENTER); public JanelaJFrame(){ label1 = new JLabel("Testando rótulos com JAVA"); texto no construtor //texto com posição definida label2 = new JLabel("Texto Centralizado", JLabel.CENTER);

/*getclass().getresource(arg) procura por um arquivo na pasta. * ImageIcon é um objeto que armazena uma imagem*/ ImageIcon img = new ImageIcon(this.getClass().getResource("JAVA.png")); //texto com imagem label3 = new JLabel("JAVA - Interface Gráfica", img, JLabel.RIGHT); Container pane = this.getcontentpane(); //captura o painel do JFrame pane.setlayout(new GridLayout(4, 1));define o layout do painel pane.add(label1); pane.add(label2); pane.add(label3); pane.add(label4); this.setsize(300, 200); JanelaJFrame janela = new JanelaJFrame(); JTextField: Componente utilizado como campo de texto. Exemplo 3: Instanciando e utilizando o JTextField. public class JanelaJFrame extends JFrame { //caixa de texto com tamanho especificado JTextField texto1 = new JTextField(10); JTextField texto2 = new JTextField(25); //caixa de texto com texto inicial JTextField texto3 = new JTextField("ESCREVA SEU TEXTO AQUI!!", 30); public JanelaJFrame(){ Container pane = this.getcontentpane(); //captura o painel do JFrame pane.setlayout(new FlowLayout(FlowLayout.LEFT)); //define o layout pane.add(texto1); pane.add(texto2); pane.add(texto3); this.setsize(360, 150); JanelaJFrame janela = new JanelaJFrame();

JTextArea: Campos de texto que podem possuir mais de uma linha. Exemplo 4: Utilização do JTextArea. public class JanelaJFrame extends JFrame { //define o número de linhas e o número de colunas do JTextArea JTextArea texto1 = new JTextArea(5, 30); //coloca um texto inicial JTextArea texto2 = new JTextArea("Comentários", 10, 30); public JanelaJFrame(){ Container pane = this.getcontentpane(); //captura o painel do JFrame pane.setlayout(new FlowLayout(FlowLayout.CENTER)); //define o layout pane.add(texto1); pane.add(texto2); this.setsize(360, 320); JanelaJFrame janela = new JanelaJFrame(); JScrollPane: Painéis de rolagem que permitem que os componentes exibam mais conteúdo do que o espaço ocupado. Exemplo 5: Mostrando o funcionamento do JScrollPane. public class JanelaJFrame extends JFrame { //define o número de linhas e o número de colunas do JTextArea JTextArea texto1 = new JTextArea(15, 30); JScrollPane scrollpane = new JScrollPane(texto1); //Painel de Rolagem public JanelaJFrame(){ Container pane = this.getcontentpane(); //captura o painel do JFrame pane.setlayout(new FlowLayout(FlowLayout.CENTER)); //define o layout texto1.setlinewrap(true); //quebra de linha automática //define a política de utilização da barra de rolagem horizontal scrollpane.sethorizontalscrollbarpolicy( JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); //define a política de utilização da barra de rolagem vertical scrollpane.setverticalscrollbarpolicy( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); pane.add(scrollpane); this.setsize(360, 320); JanelaJFrame janela = new JanelaJFrame();

JButton: Componente que representa um botão. Utilizado para executar comandos. Exemplo 6: Utilizando o JButton. public class JanelaJFrame extends JFrame { JButton button1 = new JButton("Abrir"); JButton button2 = new JButton("Novo"); JButton button3 = new JButton("Fechar"); public JanelaJFrame(){ Container pane = this.getcontentpane(); //captura o painel do JFrame pane.setlayout(new FlowLayout(FlowLayout.CENTER)); //define o layout pane.add(button1); pane.add(button2); pane.add(button3); this.setsize(300, 150); JanelaJFrame janela = new JanelaJFrame(); Experimento prático : public class JFrameLog extends JFrame{ private JLabel labelnome; private JLabel labelsenha; private JLabel labelcoment; private JTextField textnome; //Cria campo de texto q exibe 1 caracter no lugar do texto digitado //geralmente utilizado como campo de senha private JPasswordField textsenha; private JTextArea textcoment; private JButton buttonok; private JButton buttoncancelar; private JScrollPane panecoment; public JFrameLog(){ super("exemplo prático - Interface Login"); //Rótulos labelnome = new JLabel("Nome"); labelsenha = new JLabel("Senha"); labelcoment = new JLabel("Comentário"); //Campos de Texto textnome = new JTextField(25); textsenha = new JPasswordField(25); //define qual caracter será exibido //no lugar do texto digitado textsenha.setechochar('*'); textcoment = new JTextArea(10, 25); textcoment.setlinewrap(true); //Painel de rolagem panecoment = new JScrollPane(textComent, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

//Botões buttonok = new JButton("OK"); buttoncancelar = new JButton("Cancelar"); //Captura painel do JFrame Container pane = this.getcontentpane(); //define o layout pane.setlayout(new FlowLayout(FlowLayout.LEFT)); //adiciona componentes ao painel pane.add(labelnome); pane.add(textnome); pane.add(labelsenha); pane.add(textsenha); pane.add(labelcoment); pane.add(panecoment); pane.add(buttonok); pane.add(buttoncancelar); this.setsize(310, 380); this.setresizable(false); //não pode ter seu tamanho redefinido JFrameLog log = new JFrameLog(); JCheckBox: é um tipo de caixa de seleção. Exemplo 7: Utilizando o JCheckBox. public class JFrameExemplo extends JFrame{ private JLabel label = new JLabel("Linguagem em que programo:"); private JCheckBox checkjava; private JCheckBox checkcsharp; private JCheckBox checkvb; public JFrameExemplo(){ //O JCheckBox possui vários construtores: checkjava = new JCheckBox("Java"); checkcsharp = new JCheckBox("CSharp"); checkvb = new JCheckBox("Visual Basic"); Container pane1 = this.getcontentpane(); JPanel pane2 = new JPanel(new FlowLayout(FlowLayout.LEFT)); JPanel pane3 = new JPanel(new FlowLayout(FlowLayout.CENTER)); pane1.setlayout(new GridLayout(2, 1)); pane2.add(label); pane3.add(checkjava); pane3.add(checkcsharp); pane3.add(checkvb); pane1.add(pane2); pane1.add(pane3); this.setsize(310, 120); this.setresizable(false); //formulário não pode ter seu tamanho //redefinido JFrameExemplo exemplo = new JFrameExemplo();

JRadioButton: Tipo de caixa de opção. Exemplo 8: Utilizando o JRadioButton. public class JFrameExemplo extends JFrame{ private JLabel label = new JLabel("Qual linguagem você tem mais conhecimento: "); //JRadioButton possui os mesmos construtores de JCheckbox private JRadioButton[] linguagem = new JRadioButton[3]; //o buttongroup agrupa componentes //se o componentes possui o atributo Selected então //apenas um componente dentro desse buttongroup poderá ter //o estado Selected como verdadeiro private ButtonGroup group = new ButtonGroup(); public JFrameExemplo(){ linguagem[0] = new JRadioButton("JAVA"); linguagem[1] = new JRadioButton("C#"); linguagem[2] = new JRadioButton("VB"); Container pane = this.getcontentpane(); pane.setlayout(new GridLayout(4, 1)); pane.add(label); for (int i = 0; i < linguagem.length; i++){ group.add(linguagem[i]); pane.add(linguagem[i]); this.setsize(310, 200); this.setresizable(false); //formulário não pode ter seu tamanho redefinido JFrameExemplo exemplo = new JFrameExemplo(); JComboBox: Caixa de combinação que fornece uma lista drop-down e permite a escolha de apenas um item. Exemplo 9: Utilizando o JComboBox public class JFrameExemplo extends JFrame{ private JLabel labelmes = new JLabel("Informe o Mês:"); private JLabel labelano = new JLabel("Informe o Ano:"); /*JComboBox apresenta uma lista drop-down com as opções.*/ private JComboBox combomes = new JComboBox(); private JComboBox comboano = new JComboBox(); public JFrameExemplo(){ super("testando JComboBox"); Container pane1 = this.getcontentpane(); pane1.setlayout(new GridLayout(2,1)); JPanel pane2 = new JPanel(new FlowLayout(FlowLayout.LEFT));

JPanel pane3 = new JPanel(new FlowLayout(FlowLayout.LEFT)); combomes.additem("janeiro"); combomes.additem("feveiro"); combomes.additem("março"); combomes.additem("abril"); combomes.additem("maio"); combomes.additem("junho"); combomes.additem("julho"); combomes.additem("agosto"); combomes.additem("setembro"); combomes.additem("outubro"); combomes.additem("novembro"); combomes.additem("dezembro"); for (int i = 1990; i <= 2020; i++) comboano.additem(i); comboano.seteditable(true); //O texto da caixa pode ser alterado pane2.add(labelmes); pane2.add(combomes); pane3.add(labelano); pane3.add(comboano); pane1.add(pane2); pane1.add(pane3); //o método getitemat(int) retorna o valor do item através do índice //o índice é igual ao de um array, onde o primeiro item é igual a 0 System.out.println(comboMes.getItemAt(6) + "/" + comboano.getitemat(18)); this.setsize(310, 120); this.setresizable(false); JFrameExemplo exemplo = new JFrameExemplo(); JList: Lista que agrupa itens que são selecionadas pelo usuário. Exemplo 10: Utilizando o JList. public class JFrameExemplo extends JFrame{ //exemplo que cria um JList private JList listestados; private JScrollPane scrollpane; public JFrameExemplo(){ super("jlist"); Container pane = this.getcontentpane(); String[] estados = {"Amazonas", "Bahia", "Goiás", "Rio de Janeiro", "Santa Catarina", "São Paulo", "Sergipe", "Tocantins"; //no construtor é passado um vetor com os itens //que serão apresentados pelo JList listestados = new JList(estados); scrollpane = new JScrollPane(listEstados); pane.add(scrollpane); this.setsize(310, 150); this.setresizable(false);

JFrameExemplo exemplo = new JFrameExemplo(); JTable: Tabela utilizada para exibir dados. Bastante utilizada para representar os dados de um banco de dados. Exemplo 11: Utilizando o JTable. public class JFrameExemplo extends JFrame{ //define a tabela como tendo 3 colunas String[] coluna = {"Nome", "Cidade", "Estado"; //os dados que serão exibidos na tabela //a tabela possuirá o cabeçalho e 4 linhas String[][] dados = {{"Eduardo Jorge", "Salvador", "Bahia", {"Gustavo Neves", "Caetité", "Bahia", {"Tarcísio Araújo", "Mutuípe", "Bahia", {"Rafael", "Campinas", "São Paulo" ; //Passe os arrays como parâmetro no construtor //e o JTable define o seu modelo de acordo o //array de coluna e o de dados private JTable listestados = new JTable(dados, coluna); private JScrollPane scrollpane = new JScrollPane(listEstados); public JFrameExemplo(){ super("jtable"); this.getcontentpane().add(scrollpane); this.setsize(310, 150); JFrameExemplo exemplo = new JFrameExemplo(); Criando Barra de Menus Para criação de de barras de menus é necessário a utilização de 3 componentes que trabalham em conjunto. JMenuItem: Um item de menu; JMenu: Container representado através de um menu drop-down que server para agrupar outros JMenu e componentes como JMenuItem, separados entre outros; JMenuBar: Container que agrupa um ou mais JMenu. Exemplo 12: Utilizando o JMenuItem, JMenu e o JMenuBar.

public class JFrameExemplo extends JFrame{ private JMenuItem menuitemabrir = new JMenuItem("Abrir"); private JMenuItem menuitemnovo = new JMenuItem("Novo"); private JMenuItem menuitemsalvar = new JMenuItem("Salvar"); private JMenuItem menuitemfechar = new JMenuItem("Fechar"); private JMenuItem menuitemcolar = new JMenuItem("Colar"); private JMenuItem menuitemcopiar = new JMenuItem("Copiar"); private JMenuItem menuitemrecortar = new JMenuItem("Recortar"); Figura 13: Interface com barra de menus private JMenuItem menuitemsubstituir = new JMenuItem("Substituir"); private JMenuItem menuitemlocalizar = new JMenuItem("Localizar"); private JMenu menuarquivo = new JMenu("Arquivo"); private JMenu menueditar = new JMenu("Editar"); private JMenuBar menubar = new JMenuBar(); public JFrameExemplo(){ super("menus"); //adicona os JMenuItem no JMenu menuarquivo.add(menuitemabrir); menuarquivo.add(menuitemnovo); menuarquivo.add(menuitemsalvar); menuarquivo.addseparator(); menuarquivo.add(menuitemfechar); menueditar.add(menuitemcolar); menueditar.add(menuitemcopiar); menueditar.add(menuitemrecortar); menueditar.addseparator(); menueditar.add(menuitemlocalizar); menueditar.add(menuitemsubstituir); //adiciona o JMenu no JMenuBar menubar.add(menuarquivo); menubar.add(menueditar); this.setjmenubar(menubar); //atribui um JMenuBar para o frame this.setsize(310, 200); JFrameExemplo exemplo = new JFrameExemplo(); JOptionPane showmessagedialog: Caixa de dialógo utilizada para exibir uma messagem para o usuário. showconfirmdialog: Caixa de dialógio utilizada tanto para exibir uma messagem do usuário como para capturar uma resposta do usuário. Exemplo 13: utilizando o JOptionPane. public class App1 { private JPanel jpanel1; public static void main(string[] args) { JFrame janela = new JFrame("Minha Primeira Janela"); janela.setdefaultcloseoperation(jframe.exit_on_close); janela.setsize(400,300);//define o tamanho da janela janela.setvisible(true);//exibe a janela JOptionPane.showMessageDialog(null,"Botao Ok Pressionado"); JOptionPane.showConfirmDialog(null, "Deseja confirmar");

Definindo Layouts Para definir os layouts é necessário utilizar classes que são conhecidas como gerenciadores de layout. Esses gerenciadores definem a disposição dos componentes nos paineis. FlowLayout: Layout de fluxo. Os componentes ficam na ordem em que foram inseridos, da esquerda para direita, e quando acabar o espaço na linha, passam para a próxima linha. Com o FlowLayout, defini-se o alinha dos componentes, se é centralizado, alinha a esquerda, entre outros. O FlowLayout foi bastante utilizado nos exemplos deste material. Exemplo 14: Utilizando FlowLayout. public class ExemploLayout { public ExemploLayout(){ FlowLayout layout = new FlowLayout(FlowLayout.CENTER); JPanel pane = new JPanel(layout); pane.add(new JButton("Teste1")); pane.add(new JButton("Teste2")); pane.add(new JButton("Teste3")); pane.add(new JButton("Teste4")); pane.add(new JButton("Teste5")); pane.add(new JButton("Teste6")); pane.add(new JButton("Teste7")); pane.add(new JButton("Teste8")); pane.add(new JButton("Teste9")); JFrame frame = new JFrame("Testanto Interface"); frame.setcontentpane(pane); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.setsize(300, 300); frame.setvisible(true); ExemploLayout e = new ExemploLayout(); GridLayout: Arruma os componentes como uma tabela, com linhas e colunas. Os componentes são adicionados da esquerda para direita, de cima para baixo. Exemplo 15: Utilizando GridLayout public class ExemploLayout { public ExemploLayout(){ /*um GridLayout com 4 linha e 3 colunas * o GridLayout também pode especificar o intervalo veritical * e horizontal entre as células*/ GridLayout layout = new GridLayout(4, 3); //instancia um objeto do JPanel JPanel pane = new JPanel(layout); pane.add(new Label("Col 1 Lin 1")); pane.add(new Label("Col 2 Lin 1")); pane.add(new Label("Col 3 Lin 1")); pane.add(new Label("Col 4 Lin 1"));

pane.add(new Label("Col 1 Lin 2")); pane.add(new Label("Col 2 Lin 2")); pane.add(new Label("Col 3 Lin 2")); pane.add(new Label("Col 4 Lin 2")); pane.add(new Label("Col 1 Lin 3")); pane.add(new Label("Col 2 Lin 3")); pane.add(new Label("Col 3 Lin 3")); pane.add(new Label("Col 4 Lin 3")); JFrame frame = new JFrame("Testanto Interface"); frame.setcontentpane(pane); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.setsize(300, 300); frame.setvisible(true); ExemploLayout e = new ExemploLayout(); BorderLayout: Gerenciador de Layout que divide o conteiner um 5 seções, norte, sul, leste, oeste, centro. Exemplo 16: Utilizando o BorderLayout public class ExemploLayout { public ExemploLayout(){ BorderLayout layout = new BorderLayout(); //instancia um objeto do JPanel JPanel pane = new JPanel(layout); /*quando o layout é do tipo border layout os componente * são adicinados com a informação sobre sua localização no conteiner*/ pane.add(borderlayout.center, new JButton("Centro")); pane.add(borderlayout.north, new JButton("Norte")); pane.add(borderlayout.south, new JButton("Sul")); pane.add(borderlayout.east, new JButton("Leste")); pane.add(borderlayout.west, new JButton("Weste")); JFrame frame = new JFrame("Testanto Interface"); frame.setcontentpane(pane); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.setsize(300, 250); frame.setvisible(true); ExemploLayout e = new ExemploLayout();

GridBagLayout: Este é um gerenciador de layout bastante complexo. O GridBagLayout é uma extensão do GridLayout, onde no GridBagLayout as linhas e as colunas podem ter tamanhos variados de acordo com a proporção definida. Para utilizar o GridBagLayout é bom que fazer um rascunho na mão de como será o layout do formulário. O GridBagLayout é utilizado em conjunto com o GridBagConstraints, onde é definido o posicionamento, dimensão e alinhamento dos componentes no container. Exemplo 17: Utilizando o GridBagLayout. public class ExemploLayout { public ExemploLayout(){ GridBagLayout gridbag = new GridBagLayout(); GridBagConstraints constraints = new GridBagConstraints(); JPanel pane = new JPanel(); pane.setlayout(gridbag); setconstraints(constraints, 0, 0, 1, 1, 20, 100); /*restrição fill para definir em qual direção eles vão esticar*/ constraints.fill = GridBagConstraints.NONE; a restrição anchor diz onde colocar o componente dentro da célula constraints.anchor = GridBagConstraints.WEST; JLabel label1 = new JLabel("Nome"); /*define o posicionamento do componente no gridbag*/ gridbag.setconstraints(label1, constraints); pane.add(label1);adiciona o componente setconstraints(constraints, 1, 0, 1, 1, 80, 100); constraints.fill = GridBagConstraints.HORIZONTAL; JTextField text1 = new JTextField(); gridbag.setconstraints(text1, constraints); pane.add(text1); setconstraints(constraints, 0, 1, 1, 1, 0, 100); constraints.fill = GridBagConstraints.NONE; constraints.anchor = GridBagConstraints.WEST; JLabel label2 = new JLabel("Telefone"); gridbag.setconstraints(label2, constraints); pane.add(label2); setconstraints(constraints, 1, 1, 1, 1, 0, 100); constraints.fill = GridBagConstraints.HORIZONTAL; JTextField text2 = new JTextField(); gridbag.setconstraints(text2, constraints); pane.add(text2); setconstraints(constraints, 0, 2, 1, 1, 0, 100); constraints.fill = GridBagConstraints.NONE; constraints.anchor = GridBagConstraints.WEST; JLabel label3 = new JLabel("E-mail"); gridbag.setconstraints(label3, constraints); pane.add(label3); setconstraints(constraints, 1, 2, 1, 1, 0, 100); constraints.fill = GridBagConstraints.HORIZONTAL; JTextField text3 = new JTextField(); gridbag.setconstraints(text3, constraints); pane.add(text3); JFrame frame = new JFrame("Testanto Interface"); frame.setcontentpane(pane); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.setsize(300, 250); frame.setvisible(true); /*define o posicionamento dos componentes*/ private void setconstraints(gridbagconstraints gb, int gridx, int gridy, int gridwidth, int gridheight, int weightx, int weighty){ gb.gridx = gridx;coordenada horizontal célular gb.gridy = gridy;coordenada vertical célular gb.gridwidth = gridwidth; //quantas colunas o componente vai ocupar gb.gridheight = gridheight;quantas linhas o componente vai ocupar gb.weightx = weightx; //define a proporção da coluna gb.weighty = weighty; //define a proporção da linha ExemploLayout e = new ExemploLayout();

Tratamentos de Eventos Um evento pode ser um movimento, um clique no mouse, o pressionamento de uma tecla, a seleção de um item em um menu, a rolagem de um scrollbar e outros. Um mesmo componente pode ter vários ouvidores de eventos, desde que o ouvidor compatível com o componente gráfico. Listeners pacote Java.awt.event. Listeners são objetos de qualquer classe que implementem uma interface específica para o tipo de evento que deseja tratar. Listeners são objetos de qualquer classe que implementem uma interface específica para o tipo de evento que deseja tratar. Essa interface é definida para cada classe de eventos. Então para a classe de eventos java.awt.event.focusevent existe a interface java.awt.event.focuslistener. Tabela de Interface e Métodos Interface Métodos ActionListener actionperformed(actionevent) AdjustmentListener adjustmentvaluechanged(adjustmentevent) AWTEventListener EventDispatched(AWTEvent) ComponentListener componenthidden(componentevent) componentmoved(componentevent) componentresized(componentevent) componentshow(componentevent) ContainerListener componentadded(containerevent) componentremoved(containerevent) FocusListener focusgained(focusevent) focuslost(focusevent) InputMethodListener caretpositionchanged(inputmthodevent) inputmethodtextchanged(inputmethodevent) ItemListener itemstatechanged(itemevent) KeyListener keypressed(keyevent) keyreleased(keyevent) keytyped(keyevent) MouseListener mousepressed(mouseevent) mousereleased(mouseevent) mouseclicked(mouseevent) mouseentered(mouseevent) mouseexited(mouseevent) MouseMotionListener mousedragged(mousemotionevent) mousemoved(mousemotionevent) TextListener textvaluechanged(textevent) WindowListener windowopened(windowevent) windowactived(windowevent) windowdeactivated(windowevent) windowiconified(windowevent) windowdeiconified(windowevent) windowclosing(windowevent) windowclosed(windowevent)

Exemplo 18: Forma de tratar eventos 1. import java.awt.event.*; public class ExemploEventos extends JFrame implements ActionListener{ private JButton buttonok = new JButton("OK"); private JButton buttoncancelar = new JButton("Fechar"); /* Neste exemplo a própria classe implementa ActionListener * Ela implementa o único método desta interface que é o ActionPerformed*/ public ExemploEventos(){ buttonok.addactionlistener(this); buttoncancelar.addactionlistener(this); this.getcontentpane().setlayout(new FlowLayout(FlowLayout.CENTER)); this.getcontentpane().add(buttonok); this.getcontentpane().add(buttoncancelar); /*actionperformed é método de ActionListener e responde a eventos * de ação como um clique em um botão * ActionEvent é uma classe que possue atributos e métodos * para tratamento dos eventos em actionperformed*/ public void actionperformed(actionevent e){ if (e.getsource() == buttonok) JOptionPane.showMessageDialog(this, "Você clicou em Ok!!!", "Rafola", JOptionPane.INFORMATION_MESSAGE); else if (e.getsource() == buttoncancelar) System.exit(0); ExemploEventos exemplo = new ExemploEventos(); exemplo.setsize(200, 200); exemplo.setdefaultcloseoperation(jframe.exit_on_close); exemplo.setvisible(true); Exemplo 19: Forma de tratar eventos 2. /*neste exemplo criamos uma classe que implementa a interface ActionListener*/ public class ExitClass implements ActionListener{ public void actionperformed(actionevent e){ System.exit(0); import java.awt.event.*; public class ExemploEventos extends JFrame{ private JButton buttoncancelar = new JButton("Fechar"); public ExemploEventos(){ ExitClass eventexit = new ExitClass(); buttoncancelar.addactionlistener(eventexit); this.getcontentpane().setlayout(new FlowLayout(FlowLayout.CENTER));

this.getcontentpane().add(buttoncancelar); ExemploEventos exemplo = new ExemploEventos(); exemplo.setsize(100, 100); exemplo.setdefaultcloseoperation(jframe.exit_on_close); exemplo.setvisible(true); ** Exemplo 20: Forma de tratar eventos 3.** import java.awt.event.*; public class ExemploEventos extends JFrame{ private JButton buttoncancelar = new JButton("Fechar"); public ExemploEventos(){ /*evento implementado na hora em que é vinculado ao componente*/ buttoncancelar.addactionlistener(new ActionListener(){ public void actionperformed(actionevent e){ sairactionperformed(e); ); this.getcontentpane().setlayout(new FlowLayout(FlowLayout.CENTER)); this.getcontentpane().add(buttoncancelar); ExemploEventos exemplo = new ExemploEventos(); exemplo.setsize(100, 100); exemplo.setdefaultcloseoperation(jframe.exit_on_close); exemplo.setvisible(true); public void sairactionperformed(actionevent e){; System.exit(0);