utilizando swing interfaces gráficas em javavanini/mc302/interfaces gráficas em jav… · o que...
TRANSCRIPT
![Page 1: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/1.jpg)
Interfaces Gráficas em Java utilizando Swing
Márcio SaraivaPED 2016.1 - MC302
31 / 05 / 2016
![Page 2: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/2.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
Contexto● Programas complexos precisam da entrada
de muitos dados e/ou podem ter como saída muitos dados;
● Algumas atividades só são eficientes quando temos a visualização de informações;
● Usuários leigos em computação precisam ter uma forma “mais amigável” para utilizar programas.
2
![Page 3: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/3.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
ContextoGraphical user interface (GUI) X Command line interface (CLI)
3
![Page 4: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/4.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
Problema / PerguntaProblema:
Portabilidade - A aplicação tem que ter exatamente a mesma interface (cores, tamanhos etc) em qualquer sistema.
Pergunta:
Como garantir o look-and-feel dos meus programas?
4
![Page 5: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/5.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
Solução
5
![Page 6: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/6.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
Agenda● O que é Swing?
● Como utilizar?
● Exemplos
6
![Page 7: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/7.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
O que é Swing?● Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas: AWT e Swing.
A AWT (Abstract Window Toolkit) foi a primeira API para interfaces gráficas a surgir no Java e foi, mais tarde, superada pelo Swing, que possui diversos benefícios em relação a seu antecessor.
● AWT e Swing são bibliotecas gráficas oficiais inclusas em qualquer JRE ou JDK. Além destas, existem algumas outras bibliotecas de terceiros. Exemplo: SWT - desenvolvida pela IBM e utilizada no Eclipse e em vários outros produtos.
7
![Page 8: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/8.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
O que é Swing?
8
![Page 9: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/9.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
O que é Swing?
● Por padrão, o Java vem com um look-and-feel (LaF) próprio, que se comporta exatamente da
mesma forma em todas as plataformas suportadas.
● Mas é possível alterar qual o look-and-feel!
● Além do padrão do Java, o JRE da Sun ainda traz LaF nativos para Windows e Mac OS, além
do Motif e GTK. E, fora esses, você ainda pode baixar diversos LaF na Internet ou até
desenvolver o seu próprio.
9
![Page 10: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/10.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
O que é Swing?Screenshots da documentação do Swing mostrando a mesma aplicação rodando com 4 LaF diferentes:
10
![Page 11: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/11.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
Como utilizar?
JFrame
11
![Page 12: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/12.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
Como utilizar?JFrame - Dimensões
12
![Page 13: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/13.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
Como utilizar?● JLabel - Exibe texto não editável ou ícones.
● JTextField – Insere dados do teclado e serve também para exibição do texto editável ou não editável.
● JButton – Libera um evento quando o usuário clicar nele com o mouse.
● JCheckBox – Especifica uma opção que pode ser ou não selecionada.
● JComboBox – Fornece uma lista de itens onde possibilita o usuário selecionar um item ou digitar para procurar.
● JList – Lista de itens onde pode ser selecionado vários itens.
● JPanel – É a área onde abriga e organiza os componentes inseridos.
13
![Page 14: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/14.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
Como utilizarLayouts - FlowLayout
14
![Page 15: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/15.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
Como utilizarLayouts - BorderLayout
15
![Page 16: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/16.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
Como utilizarLayouts - GridLayout
Grid (2,3)
16
![Page 17: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/17.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
Como utilizarJPanel - Podemos gerar layouts mais complexos, agrupando componentes.
17
![Page 18: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/18.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
Como utilizarPosicionamento Absoluto
18
![Page 19: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/19.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
Como utilizarExemplo com vários componentes
19
![Page 20: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/20.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
Como utilizar
20
![Page 21: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/21.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
Como utilizar
21
![Page 22: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/22.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
Como utilizar
22
![Page 23: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/23.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
Como utilizar
23
![Page 24: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/24.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
Como utilizar
24
![Page 25: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/25.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
Como utilizar
25
![Page 26: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/26.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
Como utilizarProgramação Dirigida a Eventos
26
![Page 27: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/27.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
Como utilizarInterface: ActionListener
27
![Page 28: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/28.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
Exemplos● Exemplos no Eclipse
○ Tocador○ IMC
28
![Page 29: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/29.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
ExemplosExemplo 1: Hello World
public class HelloWindow {
public static void main(String[] args) {
javax.swing.JFrame myWindow;
myWindow = new javax.swing.JFrame ();
myWindow.setSize(300, 200);
myWindow.setTitle("My First Java Program");
myWindow.setVisible(true);
}
} 29
![Page 30: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/30.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
ExemplosExemplo 2: Lendo nome e sobrenome
import javax.swing.JOptionPane; public class SaidaNomeJOptionPane { public static void main(String[] args) { String nome = JOptionPane.showInputDialog("Digite o nome: "); String sobreNome = JOptionPane.showInputDialog("Digite o sobrenome: "); String nomeCompleto = nome + " " + sobreNome; JOptionPane.showMessageDialog(null, "Nome Completo: "+nomeCompleto,"Informação",JOptionPane.INFORMATION_MESSAGE); }}
30
![Page 31: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/31.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
ExemplosExemplo 3: Media entre duas notas
import javax.swing.JOptionPane; public class Media { public static void main(String[] args) { float nota1, nota2, calculaMedia; nota1 = Float.parseFloat(JOptionPane.showInputDialog ("Digite a primeira nota")); nota2 = Float.parseFloat (JOptionPane.showInputDialog("Digite a segunda nota")); calculaMedia = (nota1 + nota2) / 2; JOptionPane.showMessageDialog(null, "Resultado da Média = "+ calculaMedia,"Resultado", JOptionPane.WARNING_MESSAGE); }}
31
![Page 32: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/32.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
ExemplosObservação: JOptionPane - Constantes para diálogo de mensagens
32
![Page 33: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/33.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
O que vimos hoje?● GUI x CLI● AWT e Swing● Containers e Components● Exemplos
33
![Page 34: utilizando Swing Interfaces Gráficas em Javavanini/mc302/Interfaces Gráficas em Jav… · O que é Swing? Atualmente, o Java suporta, oficialmente, dois tipos de bibliotecas gráficas:](https://reader036.vdocuments.net/reader036/viewer/2022062403/5fddd87fce0f6f0475772abc/html5/thumbnails/34.jpg)
MC302 - Interface Gráfica- Márcio Saraiva
Material Extra● Java Swing. Marc Loy, Robert Eckstein, Dave Wood, James Elliott,
Brian Cole. O'Reilly Media; Edição: 2 - 2012
● Java para iniciantes. Herbert Schildt. Bookman; Edição: 6 - 2015
34