Buscar

Aula 3 Introdução ao Swing

Prévia do material em texto

Prof. Milton Escóssia 
2018 
PROGRAMAÇÃO II - CCT0418 
Aula - 3 – Introdução ao Java Swing 
Unidade 1. Criação de interfaces gráficas 
usando as JFC/Swing 
• 1.1. Introdução 
• 1.2. Hierarquia de classes 
• 1.3. Modelos de desenvolvimento de interfaces 
gráficas 
• 1.3.1. Desenvolvimento do SWING para GUI 
• 1.3.2. Gerenciadores de layout 
• 1.3.3. Layouts compostos 
• 1.3.4. Manipulação de aspectos visuais 
• 1.3.5. Variações de componentes visuais 
Introdução 
 O avanço tecnológico dos sistemas operacionais e dos 
computadores permitiram o surgimento de ambientes 
gráficos para facilitar sua operacionalização. 
 
 Os usuários estão habituados, desde a década de 90, a 
interagir com sistemas computacionais através de 
interfaces gráficas (GUI – Graphic User Interface). 
 
 Para atender a essa necessidade a SUN ao lançar a 
versão 1.0 do Java, incluiu uma biblioteca gráfica 
chamada AWT – Abstract Window Toolkit. 
 
A Biblioteca Gráfica AWT 
 Disponibilizada na versão 1.0 do JDK do Java 
 AWT - Abstract Window Toolkit – Kit de ferramentas 
para janelas abstratas. 
 Tinha por objetivo a independência de plataforma; 
 Delegava aos toolkits das plataformas nativas a criação e 
o comportamento dos componentes de interface gráfica; 
 Modelo de eventos pobre e ineficiente; 
 Incompatibilidades de apresentação entre as diversas 
Plataformas (“Write Once, Debug Everywhere!!!”). 
Java Foundation Classes (JFC) 
 Lançado na versão 1.1 do Java, foi criado para 
resolver as limitações que a biblioteca AWT 
apresentava, e também para incorporar outras 
bibliotecas gráficas. 
 
 A JFC é um conjunto de pacotes usados para 
criação de interfaces gráficas com o usuário (GUI) 
utilizados em aplicações portáveis Java. 
 Fornece um interface gráfica consistente para construção 
de aplicações Java para Windows, MacOS ou Linux. 
Características da JFC 
 Componentes de interface gráfica do Swing; 
 Suporte a diversos look & feel; 
 Suporte a usuários com deficiências; 
 Suporte a drag & drop; 
 Suporte a aplicações gráficas 2D. 
Componentes do JFC 
 Componentes Swing GUI 
 Suporte a componentes Look-and-Feel plugáveis 
 API de acessibilidade 
 API Java 2D 
 Internacionalização 
Swing 
 O Swing é uma coleção de componentes gráficos 
adaptáveis; 
 • Utiliza componentes lightweight: 
 Não dependem do código nativo da plataforma alvo; 
 Possuem comportamento similar nas diversas 
plataformas suportadas; 
 Possuem look & feel configurável; 
 Conjunto reduzido de top level containers. 
AWT x Swing 
Passos para criar uma GUI 
 Importação dos pacotes Swing; 
 Definição do container de mais alto nível; 
 Seleção da aparência (look & feel); 
 Definição dos componentes visuais; 
 Adição dos componentes ao container; 
 Adição de bordas em componentes; 
 Manipulação de eventos. 
Hierarquia de Classes 
Componentes e Containers 
 Os elementos de interface com o usuário são 
classificados em componentes e containers; 
 
 Componente 
 Define um componente de interface, como um botão, uma 
caixa de texto ou uma combo box; 
 Métodos como paint() e repaint(); 
 
 Container 
 Define um componente que pode conter outros componentes; 
 Define métodos como add(), para adicionar componentes em 
seu interior; 
 Possui um gerenciador de layout. 
Componentes do Swing 
 O Swing é um framework que disponibiliza um conjunto de 
elementos gráficos para ser utilizado na plataforma Java. 
 
 O Swing é compatível com o Abstract Window Toolkit (AWT), 
mas trabalha de forma totalmente diferente. 
 O AWT não delega a tarefa de renderização ao sistema 
operacional, O Swing renderiza os elementos por conta própria. 
 A API AWT é uma biblioteca de baixo-nível que depende de 
código nativo da plataforma. 
 possui problemas de compatibilidade entre as plataformas, fazendo com 
que nem sempre o programa tenha a aparência desejada em todos os 
sistemas operacionais. 
 O Swing é mais completo e os programas têm uma aparência 
muito parecida, independente do sistema operacional que está 
sendo utilizado, possui uma enorme gama de controles extras 
disponíveis. 
Trabalhando com Janelas de Diálogo - 
JOptionPane 
 Representa uma janela de diálogo para exibição de 
mensagens e entrada de dados. 
 Provê um conjunto de métodos estáticos para criar 
caixas de diálogos simples e objetivas. 
 Pacote javax.swing.JOptionPane. 
JOptionPane – Tipos de Janelas 
 showConfirmDialog 
 Solicita confirmação de uma questão como: 
yes/no/cancel. 
 showInputDialog 
 Exibe um prompt para input de dados. 
 showMessageDialog 
 Exibe uma janela de diálogo para exibir uma mensagem. 
 showOptionDialog 
 Janela de dialogo que unifica os três tipos acima. 
Exemplo 
Janela e Painel 
 Janela 
 É o container de mais alto nível (top level container); 
 Existe para prover espaço para apresentação dos 
componentes Swing. 
 
 Painel 
 É um container intermediário; 
 Existe para controlar o posicionamento dos 
componentes. 
 Componentes atômicos, como botões e linhas de edição, 
realizam a interação com o usuário propriamente dita. 
JFrame 
 Representa uma janela Swing; 
 Seu construtor pode receber uma string com o título 
da janela; 
 Possui um painel invisível, chamado ContentPane; 
 Os componentes da janela são inseridos neste 
painel; 
 Pode conter uma barra de menu. 
Estrutura de um JFrame 
Camadas do JFrame 
 RootPane 
 Gerencia as demais camadas. 
 LayeredPane 
 Contém a menu bar e o ContentPane; 
 Pode conter várias subcamadas. 
 ContentPane 
 Contém os componentes visíveis. 
 GlassPane 
 invisível por default; 
 interceptação de eventos/pintura sobre uma região. 
JFrame – Métodos Importantes 
 void setBounds(int x,int y,int width,int height) 
 void setSize(int width,int height) 
 void setLocation(int x,int y) 
 void setVisible(boolean b) 
 void setTitle(String title) 
 Container getContentPane() 
 void setJMenuBar(JMenuBar menubar) 
 JMenuBar getJMenuBar() 
 void setResizable(boolean resizable) 
 void setLocationRelativeTo(Container c) 
JFrame – Métodos Importantes 
 void setDefaultCloseOperation(int op) 
 Valores válidos para op: 
 EXIT_ON_CLOSE 
 HIDE_ON_CLOSE 
 DISPOSE_ON_CLOSE 
 DO_NOTHING_ON_CLOSE 
JFrame 
 Formas de Criação de uma aplicação usando 
JFrame: 
 Por associação (instanciação) 
 Por Herança 
 
 Principais Construtores: 
 JFrame(String title) 
 JFrame() 
JFrame – Por Associação 
JFrame – Por Herança

Outros materiais