utilizando swing interfaces gráficas em java - ic.unicamp.brvanini/mc302/interfaces gráficas em...

35
Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1 - MC302 31 / 05 / 2016

Upload: dinhphuc

Post on 21-Nov-2018

240 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: utilizando Swing Interfaces Gráficas em Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

Interfaces Gráficas em Java utilizando Swing

Márcio SaraivaPED 2016.1 - MC302

31 / 05 / 2016

Page 2: utilizando Swing Interfaces Gráficas em Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

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 Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

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 Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

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 Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

MC302 - Interface Gráfica- Márcio Saraiva

Solução

5

Page 6: utilizando Swing Interfaces Gráficas em Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

MC302 - Interface Gráfica- Márcio Saraiva

Agenda● O que é Swing?

● Como utilizar?

● Exemplos

6

Page 7: utilizando Swing Interfaces Gráficas em Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

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 Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

MC302 - Interface Gráfica- Márcio Saraiva

O que é Swing?

8

Page 9: utilizando Swing Interfaces Gráficas em Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

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 Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

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 Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

MC302 - Interface Gráfica- Márcio Saraiva

Como utilizar?

JFrame

11

Page 12: utilizando Swing Interfaces Gráficas em Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

MC302 - Interface Gráfica- Márcio Saraiva

Como utilizar?JFrame - Dimensões

12

Page 13: utilizando Swing Interfaces Gráficas em Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

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 Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

MC302 - Interface Gráfica- Márcio Saraiva

Como utilizarLayouts - FlowLayout

14

Page 15: utilizando Swing Interfaces Gráficas em Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

MC302 - Interface Gráfica- Márcio Saraiva

Como utilizarLayouts - BorderLayout

15

Page 16: utilizando Swing Interfaces Gráficas em Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

MC302 - Interface Gráfica- Márcio Saraiva

Como utilizarLayouts - GridLayout

Grid (2,3)

16

Page 17: utilizando Swing Interfaces Gráficas em Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

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 Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

MC302 - Interface Gráfica- Márcio Saraiva

Como utilizarPosicionamento Absoluto

18

Page 19: utilizando Swing Interfaces Gráficas em Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

MC302 - Interface Gráfica- Márcio Saraiva

Como utilizarExemplo com vários componentes

19

Page 20: utilizando Swing Interfaces Gráficas em Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

MC302 - Interface Gráfica- Márcio Saraiva

Como utilizar

20

Page 21: utilizando Swing Interfaces Gráficas em Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

MC302 - Interface Gráfica- Márcio Saraiva

Como utilizar

21

Page 22: utilizando Swing Interfaces Gráficas em Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

MC302 - Interface Gráfica- Márcio Saraiva

Como utilizar

22

Page 23: utilizando Swing Interfaces Gráficas em Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

MC302 - Interface Gráfica- Márcio Saraiva

Como utilizar

23

Page 24: utilizando Swing Interfaces Gráficas em Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

MC302 - Interface Gráfica- Márcio Saraiva

Como utilizar

24

Page 25: utilizando Swing Interfaces Gráficas em Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

MC302 - Interface Gráfica- Márcio Saraiva

Como utilizar

25

Page 26: utilizando Swing Interfaces Gráficas em Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

MC302 - Interface Gráfica- Márcio Saraiva

Como utilizarProgramação Dirigida a Eventos

26

Page 27: utilizando Swing Interfaces Gráficas em Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

MC302 - Interface Gráfica- Márcio Saraiva

Como utilizarInterface: ActionListener

27

Page 28: utilizando Swing Interfaces Gráficas em Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

MC302 - Interface Gráfica- Márcio Saraiva

Exemplos● Exemplos no Eclipse

○ Tocador○ IMC

28

Page 29: utilizando Swing Interfaces Gráficas em Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

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 Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

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 Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

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 Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

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 Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

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 Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

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

Page 35: utilizando Swing Interfaces Gráficas em Java - ic.unicamp.brvanini/mc302/Interfaces Gráficas em Java%0B... · Interfaces Gráficas em Java utilizando Swing Márcio Saraiva PED 2016.1

Interfaces Gráficas em Java utilizando Swing

Márcio [email protected]

31 / 05 / 2016