COM220 Aula 17: Interface Gráfica Containers Swing

Documentos relacionados
Componentes GUI A aparência e maneira como um usuário pode interagir com componentes AWT diferem de acordo com a plataforma. Componentes Swing permite

Aula 15 Interface Gáfica. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

Componente JOptionPane Layout Null Tratamento de Eventos. Action Listener

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

Linguagem de Programação Visual

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

Comando if.. else. 2. JOptionPane. showmessagedialog. showconfirmdialog. showinputdialog. Caixa de diálogo para mostrar mensagem simples

Agenda. JFC (Java FoundaNon Classes) Interfaces Gráficas: layout manager JFC. Componentes do Swing. Pluggable Look and Feel

Exercício 1: Criar um programa que utiliza que desenha uma interface gráfica tal como descrito na Figura 1.1.

MÓDULO 4 SWING Parte 3

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

Interface Gráfica. Disciplina: Desenvolvimento de Sistemas. Professor: Thiago Silva Prates

Programação de Computadores - I. Profª Beatriz Profº Israel

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

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

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 4- Tratamento de Eventos em Interfaces Gráficas

Pacote Java Swing Parte 1

Desenvolvimento de Aplicações Desktop

Interfaces Gráficas com Swing. Professor Leonardo Larback

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula de Revisão para AV1

Módulo 1. Introdução. Programação Orientada a Objetos I Java (Rone Ilídio)

A classe JTextField

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

Desenvolvendo aplicações

Gerenciadores de Layout

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula de Revisão para AV1

Interfaces Gráficas (GUIs) em Java usando Swing

Layout. Programação Orientada a Objetos Java. Prof. Geraldo Braz Junior. Baseado em material original de João Carlos Pinheiro CEFET/MA

Elaborando as Interfaces Aulas 31, 32 e 33

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

8. Interfaces Gráficas de Usuário

Prof. Rogério Albuquerque de Almeida. Programação Orientada a Objetos II Java Nona aula

Entrada e Saída de dados por JOptionPane

Aula 3. Objetivos Sequências de escapes ; Um aplicativo que adiciona inteiro; Aritmética.

Curso de Aprendizado Industrial Desenvolvedor WEB

Interfaces Gráficas POO. Prof. Márcio Delamaro

Lista de Exercícios da disciplina Aplicações de Linguagem de Programação Orientada a objetos

Especialização em Engenharia de Software - CEUT

1) Responda de acordo com os conceitos de orientação a objetos (0,5).

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

JAVA Orientação a Objetos. Usando diálogos com JOptionPane

Ivo Augusto Fontana Bertoncello Marcelo de Oliveira Dias

(INFORMAÇÕES PARA LABORATÓRIOS VIRTUAIS) Nome do laboratório: Laboratório de Programação (INFORMAÇÕES PARA FERRAMENTA)

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

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

Roteiro. Introdução. Uma Introdução à Programação Orientada a Objetos e JAVA usando NetBeans. Objetos. Princípios da Orientação a Objetos

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

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

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

Interface Gráfica - Swing

JAVA. Gerenciadores de Layout. Tiago Alves de Oliveira

Aula 4. TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 2014 Marcelo Henrique dos Santos -

4 TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

Interfaces Gráficas (GUIs) em Java usando Swing

Gerenciamento de Layout

Além de digitar e rodar os exemplos para ver seu funcionamento, deve-se ler atentamente e entender o que cada linha do código está fazendo.

UNIDADE I AULA II. Introdução à programação Java

Exercícios sobre repetição. 1. Escreva um método que lê via teclado 8 números e retorna a quantidade de negativos.

Programação Visual em Java

Adding User Interaction

JFC/Swing. LPGII - Java Interface Gráfica JFC/Swing. Introdução JFC / Swing. Introdução JFC / Swing

Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador)

Java Swing: Netbeans

Linguagem de Programação II GUI Interface Gráfica com o Usuário

Transcrição:

COM220 Aula 17: Interface Gráfica Containers Swing Prof. Laércio Baldochi

Containers Swing Janelas JFrame Painéis JPanel Applets JApplet Caixas de diálogo JDialog JOptionPane

JFrame Componente principal para a construção de interfaces gráficas em aplicações Swing Componente pesado Pode possuir Bordas Título Menu Botões de controle Fechar, minimizar, etc.

JFrame Vejamos como criar um JFrame e inserir elementos nele // Cria a janela com o título JFrame frame = new JFrame("FrameDemo"); // Define a ação a ser executada quando a janela for fechada frame.setdefaultcloseoperation(jframe.exit_on_close); // Cria o componente e o adiciona ao container JLabel emptylabel = new JLabel(); frame.add(emptylabel); // Define o tamanho da janela frame.setsize(185, 150); // Exibe a janela frame.setvisible(true);

JFrame frame.setdefaultcloseoperation(jframe.exit_on_close); Quando um JFrame é fechado, ele somente torna-se invisível Continua executando (não desaloca recursos) Método setdefaultcloseoperation permite configurar o comportamento da janela EXIT_ON_CLOSE HIDE_ON_CLOSE DISPOSE_ON_CLOSE DO_NOTHING_ON_CLOSE

Painel Componente gráfico para uso geral Agrupa de forma lógica outros componentes Gerencia layout de uma área Classe JPanel Na criação de um painel Deve-se especificar um gerenciador de layout setlayout(layoutmanager) Pode-se especificar as características de sua borda Classe BorderFactory setborder(border)

JPanel Pode-se adicionar objetos diretamente a um JPanel Método -> add(component) Pode ter um parâmetro opcional contendo a posição do componente dentro do layout escolhido

JPanel // Cria os painéis JPanel p1 = new JPanel(), p2 = new JPanel(), p3 = new JPanel(); JPanel p4 = new JPanel(), p5 = new JPanel(), p6 = new JPanel(); // Seta diferentes tipos de bordas para os painéis p1.setborder(borderfactory.createtitledborder("título")); p2.setborder(borderfactory.createetchedborder()); p3.setborder(borderfactory.createlineborder(color.black)); p4.setborder(borderfactory.createraisedbevelborder()); p5.setborder(borderfactory.createloweredbevelborder()); p6.setborder(borderfactory.creatematteborder(5,5,5,5,color.black)); // Cria um painel principal, seta o layout e a borda JPanel p = new JPanel(); p.setlayout(new GridLayout(2, 3, 5, 5)); p.setborder(borderfactory.createemptyborder(5, 5, 5, 5)); // Adiciona os painéis ao painel principal p.add(p1); p.add(p2); p.add(p3); p.add(p4); p.add(p5); p.add(p6);

Caixas de Diálogo Mais limitadas que os frames Normalmente utilizadas para solicitar entradas do usuário e exibir mensagens JDialog O processo de criação de um diálogo envolve desde a construção dos componentes e gerenciamento do layout até a implementação dos listeners

public static void main(string[] args) { // Código que cria uma caixa de diálogo e a torna visível JFrame parent = new JFrame(); SimpleDialog dialog = new SimpleDialog(parent, "A Simple Dialog"); } JDialog class SimpleDialog extends JDialog implements ActionListener { } JFrame parent; JTextField field; JButton setbutton; SimpleDialog(JFrame parent, String title) { // Chama o construtor da superclasse com os parâmetros: // janela-pai e título super(parent, title, true); // Cria e ajusta os componentes... // Inicializa o diálogo com o tamanho preferido pack(); } public void actionperformed(actionevent event) { Object source = event.getsource(); if (source == setbutton) this.settitle(field.gettext()); }

JDialog import java.awt.*; import java.awt.event.*; import javax.swing.*; public class SimpleDialog extends JDialog implements ActionListener { JFrame parent; JTextField textfield; JButton setbutton; SimpleDialog(JFrame parent, String title) { super(parent, title, true); JLabel label = new JLabel("Entre o texto aqui: "); textfield = new JTextField(25); setbutton = new JButton("Ajusta título"); JPanel p = new JPanel(); p.setlayout(new FlowLayout()); p.add(label); p.add(textfield); p.add(setbutton); this.add(p); setbutton.addactionlistener(this); //Adicionando listener ao botao this.pack(); this.setvisible(true); }

JDialog public void actionperformed(actionevent event) { Object source = event.getsource(); if (source == setbutton) { this.settitle(textfield.gettext()); } } } public static void main(string[] args) { // Código que cria uma caixa de diálogo e a torna visível JFrame parent = new JFrame(); SimpleDialog dialog = new SimpleDialog(parent, "A Simple Dialog"); }

JOptionPane Fornece um conjunto de métodos para a criação automática de caixas de diálogo padronizadas Solicitar entrada do usuário Exibir mensagem Nome do método showconfirmdialog showinputdialog showmessagedialog showoptiondialog Descrição Faz uma pergunta e solicita a confirmação do usuário Solicita alguma entrada para o usuário Informa o usuário sobre algo Apresenta ao usuário um conjunto de opções e pede que ele escolha uma

JOptionPane É possível definir propriedades Ícone a ser mostrado Tipo da mensagem Botões que irão aparecer na tela Possíveis valores ERROR_MESSAGE INFORMATION_MESSAGE WARNING_MESSAGE QUESTION_MESSAGE PLAIN_MESSAGE

JOptionPane Object[] options = { "Option 1", "Option 2", "Option 3" }; JOptionPane.showInputDialog( this, // Componente-pai (define a posição relativa) "Message", // A mensagem a ser apresentada "Title", // O título da caixa de diálogo JOptionPane.QUESTION_MESSAGE, // O tipo da mensagem null, // O ícone a ser mostrado options, // A lista de opções options[1] // A opção inicial );

JOptionPane - Exemplo import javax.swing.joptionpane; public class Adicao { public static void main( String args[] ) { // obtém a entrada de usuário a partir dos diálogos de entrada String firstnumber = JOptionPane.showInputDialog( "Digite o primeiro numero" ); String secondnumber = JOptionPane.showInputDialog( "Digite o segundo numero" ); // converte String em valores int para utilização em um cálculo int number1 = Integer.parseInt( firstnumber ); int number2 = Integer.parseInt( secondnumber ); int sum = number1 + number2; // soma os números // exibe o resultado em um diálogo de mensagem JOptionPane JOptionPane.showMessageDialog( null, "A soma dos numeros eh " + sum, "Soma de dois inteiros", JOptionPane.PLAIN_MESSAGE ); } // fim do método main } // fim da classe Adicao

Exercício 1 Faça um programa para jogar par ou ímpar com o computador Usar JOptionPane Computador gera um nro aleatório primeiro Jogador pede par ou ímpar na primeira janela Jogador digita sua jogada na segunda janela A terceira janela deve mostrar o valor do somatório e o ganhador int r = (int) (Math.random() * 10); Gera um nro randômico entre 0 e 99

Exercício 1 Dica use Object[] options = { "PAR", "IMPAR" }; opuser = JOptionPane.showOptionDialog(null, "Par ou Ímpar?", "Jogo do para ou ímpar", JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, null);

Eventos de janela Quando o usuário manipula uma janela, essa ação gera eventos de janela Os ouvintes (listeners) desse tipo de evento são registrados com o método addwindowlistener Interface associada ->WindowListener windowactivated windowclosed windowclosing windowdeactivated windowiconified windowdeiconified windowopened

Eventos de janela windowactivated Quando uma janela se torna ativa windowclosed Depois que uma janela é fechada windowclosing Quando o usuário tenta fechar uma janela windowdeactivated Quando a janela ativa passa para o background ou é minimizada windowiconified Quando uma janela é minimizada windowdeiconified Quando uma janela minimizada é maximizada windowopened Quando a janela é exibida na tela pela primeira vez

Exercício 2 Crie um JFrame que exibe uma caixa de diálogo quando é fechado, solicitando confirmação do usuário para sair da aplicação. A caixa deve ter duas opções: sim e não, sendo que se o usuário escolher sim, a aplicação é fechada.

Applets Java Aplicação Java que pode ser embutida em páginas HTML Executa no browser JApplet Subclasse da classe Applet (AWT) Deve sobrescrever os métodos init(), start(), stop() e destroy() Não necessita do método main

Applets Java Métodos init() chamado quando o applet é carregado na página utilizado para construir a interface gráfica, ler parâmetros e alocar demais recursos stop() invocado quando o usuário sai da página do applet ou quando o browser é fechado o applet pára de executar, mas permanece carregado; start() invocado quando o applet é carregado no início (após o init) ou quando o usuário retorna à pagina com o applet o applet (re)inicia a sua execução; destroy() chamado quando o browser é fechado o applet é destruído e seus recursos são desalocados.

Applets Java Exemplos // Um applet deve estender a classe JApplet public class MyApplet extends JApplet { private int i = 0; // Inicializa o applet public void init() { System.out.println(++i + ". Initializing"); } // Começa a executar o applet public void start() { System.out.println(++i + ". Starting"); } // Pára de executar o applet public void stop() { System.out.println(++i + ". Stopping"); } // Destrói o applet public void destroy() { System.out.println(++i + ". Destroying"); } }

Inserindo Applets em páginas HTML Documento HTML deve utilizar a tag <APPLET> e configurar os seguintes atributos CODE: indica o arquivo que contém a classe que estende a JApplet CODEBASE: especifica a URL base do applet o diretório que contém o arquivo especificado no atributo CODE WIDTH e HEIGHT: definem a largura e a altura do applet

Passando parâmetros para applets É possível passar parâmetros da página HTML para o applet usando a tag <PARAM> Atrituto NAME -> nome do parâmetro Atributo VALUE -> valor do parâmetro Applet lê os parâmetros utilizando o método getparameter(name)

Exemplo de utilização da tag APPLET <APPLET CODE="MyApplet.class" CODEBASE="example/" WIDTH="300" HEIGHT="150"> <PARAM NAME="userId" value="123"> </APPLET>

Escrevendo em applets com a classe Graphics Classe Graphics é usada para enviar informação ao applet Provê métodos para desenhar palavras e figuras drawimage() drawpolygon() drawstring()...

Escrevendo em applets com a classe Graphics Conteúdo é desenhado no applet utilizando o método paint() Exemplo public void paint (Graphics g){ } g.drawstring( Hello World, 50, 25);

Exercício 3 Crie um applet que lê um nome de usuário a partir de um parâmetro do HTML e o escreve em um painel central.