Sunteți pe pagina 1din 80

IFRO – Instituto Federal de Rondônia – Campus Vilhena

Disciplina: Linguagem e Programação Visual


Professor: Bruno Rover Dal Prá(bruno.dalpra@ifro.edu.br)

Linguagem e
Programação Visual

Prof. Bruno Rover Dal Prá

1
Ementa
UNIDADE I – Introdução à programação visual

1.1 Conceitos básicos


1.2 Janelas
1.3 Gerenciamento de layouts
1.4 Componentes básicos de formulário
1.5 Tratamento de eventos
1.6 Ambiente de programação visual

2
Exceções
UNIDADE II – Componentes de interface
2.1 Rótulos
2.2 Botões
2.3 Caixas e áreas de texto
2.4 Caixa de combinação
2.5 Caixa de seleção
2.6 Botões de rádio
2.7 Menus
2.8 Barras de Ferramentas
2.9 Listas
2.10 Grades
2.11 Seletores de cor e arquivos
2.12 Ícones e imagens
2.13 Eventos temporizados
3
Ementa
UNIDADE III – Desenvolvimento com Múltiplas Interfaces
Gráficas
3.1 Caixas de diálogo
3.2 Quadros internos
3.3 Painéis com guias
3.4 Comunicação entre janelas
UNIDADE IV – Acesso ao Banco de Dados
4.1 Acesso ao banco de dados
4.2 Integração entre a interface gráfica e os dados
4.3 Desenvolvimento de aplicações para manipulação de
dados (adicionar, editar, remover e listar registros do

4
Swing e AWT
n Desenvolvimento de interfaces gráficas.
AWT – ABSTRACT WINDOW TOOLKIT.
n AWT foi substituído pelo swing
pertencente à biblioteca JFC (Java
Foundation Classes), portanto o swing é
uma extensão das classes da AWT.

5
Swing e AWT
n As aplicações gráficas são aquelas que
possibilitam a criação de uma GUI (Graphical
User Interface – Interface Gráfica do Usuário).
n Ao desenvolver uma aplicação dotada de uma
GUI, é necessário definir quais componentes
(objetos) serão utilizados e a disposição que
eles terão na janela.
n O swing possui inúmeras classes que podem
ser utilizadas na construção da GUI, assim as
aplicações são criadas a partir de janelas
gráficas.
6
Swing e AWT
n Um componente da GUI é um objeto visual
(criado a partir de classes Java) que possibilita
realizar a interação com a aplicação por meio do
mouse e do teclado. Os componentes mais
comuns são :
¨ etiquetas, botões, caixas de texto, painéis de
rolagem, menus, objetos de múltipla escolha, entre
outros.
n Cada um dos componentes possui propriedades
que podem ser alteradas em tempo de
desenvolvimento ou execução (cor, tamanho,
fonte etc.), 7
Swing e AWT
n Os componentes GUI Swing estão dentro do
pacote javax.swing que são utilizados para
construir as interfaces gráficas. Alguns
componentes não são do tipo GUI Swing e sim
componentes AWT. Antes de existir o GUI
Swing, o Java tinha
componentes AWT (Abstract Windows Toolkit)
que faz parte do pacote javax.awt.
n Em geral, os componentes de Swing são
derivados da classe JComponent.

8
Swing e AWT
n A diferença entre o GUI Swing e AWT, é na
aparência e comportamento dos componentes,
ou seja, quando criado por AWT, a aparência e
comportamento de seus componentes são
diferentes para cada plataforma e enquanto feito
por GUI Swing, a aparência e comportamento
funcionam da mesma forma para todas as
plataformas.

9
Exemplos

10
Swing

n Swing é uma coleção de classes e


interfaces que oferece um rico conjunto de
componentes visuais, como botões de
ação, campos de texto, barras de
rolagem, caixas de seleção, árvores,
tabelas e menus, que podem ser
personalizados para atender a qualquer
necessidade.
11
COMPONENTES E CONTÊINERES
n Uma GUI de Swing é composta por dois itens
principais: componentes e contêineres.
n Todos os contêineres também são
componentes.
n A diferença entre os dois pode ser detectada em
sua finalidade: com o significado dado
usualmente ao termo, um componente é um
controle visual independente, como um botão de
ação ou um controle deslizante, e um contêiner
contém um grupo de componentes.

12
COMPONENTES

13
GERENCIADORES DE LEIAUTE
n O gerenciador de leiaute controla a posição dos
componentes dentro de um contêiner. Em
outras palavras, um gerenciador de leiaute
determina o local dos controles dentro de um
contêiner. Java oferece vários gerencia- dores
de leiaute.

14
TRATAMENTO DE EVENTOS
n Um evento é gerado quando o usuário clica em um botão,
pressiona uma tecla no teclado ou seleciona um item em uma
lista. Eventos também são gerados de maneiras não
diretamente relacionadas à entrada do usuário.
n Por exemplo, um evento é gerado quando o tempo de um timer
expira. Seja qual for o caso, o tratamento de eventos é uma
parte importante de qualquer aplicativo baseado em Swing.

15
EVENTOS

n No modelo de delegação, o evento é um objeto que


descreve uma mudança de estado em uma fonte. Ele
pode ser gerado como consequência de uma pessoa
estar em inte- ração com o controle de uma interface
gráfica de usuário ou ser criado sob controle do
programa. A superclasse de todos os eventos é
java.util.EventObject. Muitos eventos são declarados
em java.awt.event. Outros são encontrados em
javax.swing.event.

16
EVENTOS
n Fontes de eventos
n Uma fonte de evento é um objeto que gera um evento.
Quando uma fonte gera um evento, ela deve enviá-lo
para todos os ouv

n Ouvintes de eventos
n Um ouvinte é um objeto que é notificado quando um
evento ocorre.intes registrados.

17
EVENTOS

18
EVENTOS

19
Frames
n JFrame nada mais é que uma classe, como
outra qualquer que estudamos e criamos ao
longo de nosso curso.
n Porém, essa classe é que será responsável por
criar a tela em que iremos desenhar, colocar
botões, menus, caixas de texto e tudo mais que
existem nas janelas de aplicativos.
n Para criar frames utilizaremos a classe JFrame
disponível no pacote swing, a qual gera uma
janela com barra de título, bordas e pode ter
outros componentes visuais (objetos) em seu
interior. 20
Frames

21
Classe JLabel
n A classe JLabel permite definir um texto
que pode ser adicionado a um outro
componente (frame,painel etc.). Podem
ser definidas várias propriedades para
esse texto, tais como alinhamento, tipo de
letra, tamanho, cor etc.
n Uma possível sintaxe para a declaração e
criação de um objeto JLabel é:

22
Classe JLabel

23
Classe JLabel
n Propriedades mais utilizadas do JLabel:
n setText(String text):define o texto que aparecerá no
JLabel.
n setFont(Font fonte):permite alterar a fonte do JLabel. A
fonte é representada pela classe Font, onde é definido o
tamanho, estilo e nome da fonte.
n setForeground(Color fg):define a cor da fonte.
n setIcon(IconImage icon):permite adicionar um ícone ao
JLabel. Muitas vezes o JLabel possui apenas um ícone
ou imagem para deixar a tela mais amigável ao usuário.
O ícone é representado pela classe IconImage. Para
criar um IconImage deve ser passado como parâmetro o
caminho da imagem.
24
Criar Frame

25
Criar Frame

26
Criar Frame

27
Classe JTextField
n A classe JTextField permite criar uma caixa de texto
gráfica em que o usuário pode digitar dados.
n Assim como JLabel, existem diversas propriedades
cujos conteúdos podem ser modificados. Uma possível
n sintaxe para a declaração e criação de um objeto
JTextField é:

28
Classe JTextField

29
Classe JPasswordField
n De forma semelhante à JTextField, a classe
PasswordField permite criar um componente visual em
que o usuário digita os caracteres, porém eles são
substituídos (visualmente) por outro caractere.

n O funcionamento da classe JPasswordField é


praticamente o mesmo da classe JTextField, a diferença
é que o caractere digitado é substituído por outro para
ocultar a senha digitada.

30
Classe JPasswordField
n O caractere default que aparece no momento da
digitação é o asterisco (*), entretanto qualquer caractere
pode ser definido pelo método setEchoChar. Uma
possível sintaxe para a declaração e criação de um
objeto JPasswordField é:

31
Classe JPasswordField

32
Classe JButton
n A classe JButton permite a criação de botões gráficos a
serem adicionados em outros componentes gráficos
(como frames e painéis).
n Um botão pode ser criado com apenas um texto e/ou
com ícones para tornar o ambiente mais intuitivo.
n Uma possível sintaxe para a declaração e criação de um
objeto JButton é:

33
Classe JButton

34
Exercício - O frame Login

n Criar um frame com 2 JLabel, 1 JTextField, 1


JPasswordField e 2 botões.
n Alterar a fonte dos JLabel para azul;
n Criar o fundo dos Jtextfield de amarelo e
tamanho 80.
n Criar 2 botões: Logar e Cancelar com tamanhos
e cores de Fundo: 80 e 100 e cores Amarelo e
preto respectivamente .

35
Exercício - O frame Login

36
Inclusão de menus - Barras
de menus
n Antes de criar um menu, é necessário criar uma barra
de menus para que ela contenha o conjunto de menus
que aparece na parte superior da janela.

37
Inclusão dos botões de rádio
n Os botões de rádio são criados a partir da classe
JRadioButton e, diferentemente dos JCheckBox,
permitem que apenas uma entre várias opções seja
escolhida pelo usuário.
n Os botões de rádio devem sempre ser agrupados em
um ButtonGroup para cada conjunto de botões de rádio
a ser inserido no painel.

38
Inclusão dos botões de rádio

39
Inclusão dos botões de rádio

n Exercício

40
Inclusão de listas de seleção
n As listas de seleção são objetos que possibilitam a
escolha de um ou vários valores armazenados em uma
lista de opções. Essa lista é manipulada a partir da
classe JList.
n

41
JFrame
n Esta classe define objetos que sao frequentemente
utilizadas para criar aplicativos baseados em GUI. Eles
consistem em uma janela com barra de título e uma
borda e fornecem o espaço para a GUI do aplicativo ser
construída
n A classe JFrame é uma subclasse de java.awt.Frame,
que por sua vez ́e subclasse de java.awt.Window. Pelo
mecanismo de herança.

42
JFrame
n JDesktopPane e JInternalFrame
n São classes que fornecem suporte a criação de
interfaces de multiplos documentos. Uma janela
principal (pai) contém e gerencia outras janelas (filhas).
n

43
JDialog
n Usamos a classe JDialog, que é susbclasse de
java.awt.Dialog para criarmos caixas de dialogo
elaboradas, embora mais limitados que as originadas
por JFrames.
n Em prol da facilidade, a classe JOptionPane, que esta
definida no pacote de extensão javax.swing, oferece
caixas de dialogo pré-definidas que permitem aos
programas exibir simples mensagens para os usuarios.
n Cada vez que usamos uma JOptionPane para
implementar um díalogo, na verdade estamos usando
uma JDialog nos bastidores.

44
Inclusão de caixas de diálogo
n A inclusão de caixas de diálogo é realizada por
meio da classe JOptionPane, que apresenta
diversas janelas diferentes: que fazem uma
pergunta, que avisam o usuário ou fornecem
uma mensagem qual- quer.
n Essas janelas representam um modo de
comunicação com o usuário, possibilitando
passar uma informação ou obter respostas.
Existem quatro tipos padrão de caixas de
diálogo:

45
Inclusão de caixas de diálogo
¨ showMessageDialog→caixadediálogoqueapresenta
umamensagem,possibilitandoacrescentar ícones de
alerta ao usuário.
¨ showConfirmDialog → além de emitir uma
mensagem, possibilita ao usuário responder a uma
pergunta.
¨ showInputDialog → além de emitir uma mensagem,
permite a entrada de um texto.
¨ showOptionDialog → caixa de diálogo que abrange
os três tipos anteriores.

46
Inclusão de caixas de diálogo
¨ showMessageDialog→caixadediálogoqueapresenta
umamensagem,possibilitandoacrescentar ícones de
alerta ao usuário.
¨ showConfirmDialog → além de emitir uma
mensagem, possibilita ao usuário responder a uma
pergunta.
¨ showInputDialog → além de emitir uma mensagem,
permite a entrada de um texto.
¨ showOptionDialog → caixa de diálogo que abrange
os três tipos anteriores.

47
O método showMessageDialog
¨ O método showMessageDialog é utilizado para
mostrar ao usuário alguma informação e não re-
torna nenhum tipo de valor de resposta. Essa caixa
de diálogo pode apresentar um ícone referente ao
tipo de mensagem (pergunta, informação, alerta, erro
ou definido pelo usuário) ou não apresentar nada,
apenas a mensagem na tela sem ícone. Sua sintaxe
é a seguinte:

48
O método showMessageDialog
n Component: refere-se a um objeto do tipo container que permite
definir a posição da tela em que a caixa de mensagem aparecerá.
Normalmente esse argumento é deixado como null (default) para
que a mensagem apareça centralizada na tela.
n Mensagem: é a mensagem a ser apresentada ao usuário.
n Título da mensagem: é o texto que aparece na barra de título da
janela da caixa de diálogo.
n Tipo da mensagem: é o ícone que representa o tipo de mensagem
apresentado ao usuário. A Tabela mostra as constantes da
linguagem Java para definição dos ícones a serem exibidos na tela.
Conforme veremos adiante, esses ícones podem ser usados em
outros métodos, isto é, em outras caixas de diálogo.

49
O método showMessageDialog

50
O método showMessageDialog

51
O método showConfirmDialog
n As caixas de diálogo de confirmação possibilitam ao usuário
responder a algum questiona- mento por meio dos botões Yes, No e
Cancel. Uma vez apresentada na tela, o usuário escolhe uma das
opções, e, dependendo do botão clicado, é retornado um valor
inteiro pertencente à classe JOptionPane: YES_OPTION = 0,
NO_OPTION = 1 e CANCEL_OPTION = 2.
n Existem três tipos de caixa de diálogo de con rmação: as que
apresentam os botões Yes e No (YES_NO_OPTION ou 0), as que
apresentam os botões Yes, No e Cancel
(YES_NO_CANCEL_OPTION ou 1) e as que apresentam os
botões Ok e Cancel (OK_CANCEL_OPTION ou 2). A sintaxe do
método showCon rmDialog é a seguinte:

52
O método showConfirmDialog

53
Exercício

54
O método showOptionDialog
n As caixas de diálogo de opção são geradas a partir do método
showOptionDialog e são mais complexas que as anteriores. Elas
são capazes de combinar todos os recursos já vistos nas outras
caixas de diálogo. Sua sintaxe é a seguinte:

n botões presentes: um tipo de caixa que utiliza as variáveis


YES_NO_OPTION, YES_NO_CANCEL_ OPTION ou
OK_CANCEL_OPTION. Deve-se utilizar o 0 (zero) caso outros
botões sejam utilizados no lugar desses.
n tipodemensagem:umavariávelqueserefereaumapergunta,informaç
ão,alerta,errooude ni- da pelo usuário.
n ícone: um objeto do tipo ImageIcon a ser apresentado no lugar de
um dos ícones do argumento anterior (<tipo de mensagem>). Se
nenhum ícone for usado, deve-se colocar a palavra null no lugar
desse argumento. 55
O método showOptionDialog
n array de objetos: é um array de objetos que contém os
componentes ou outros objetos que representam as escolhas na
caixa de diálogo, caso YES_NO_OPTION,
YES_NO_CANCEL_OPTION ou OK_CANCEL_OPTION não sejam
usados.
n seleção padrão: o objeto que representa a seleção padrão, caso
as opções YES_NO_OPTION, YES_NO_CANCEL_OPTION ou
OK_CANCEL_OPTION não sejam usadas.

56
Inclusão de caixas de opção

n As caixas de opção são criadas a partir da classe JCheckBox e


permitem representar uma opção que está ativada (true) ou
desativada (false).
n As caixas de opção são utilizadas para exibir várias opções dentre
as quais o usuário pode optar por selecionar nenhuma, uma ou
várias delas. Como exemplo prático de utilização, suponha que o
usuário precise selecionar todos os idiomas que ele domina (inglês,
português, espanhol etc.). Ele poderia selecionar quais e quantos
forem necessários.

57
Inclusão de caixas de opção

58
Inclusão dos botões de rádio
n Os botões de rádio são criados a partir da classe JRadioButton e,
diferentemente dos JCheckBox, permitem que apenas uma entre
várias opções seja escolhida pelo usuário.
n Os botões de rádio devem sempre ser agrupados em um
ButtonGroup para cada conjunto de botões de rádio a ser inserido
no painel. É por meio de ButtonGroup que o usuário só consegue
selecionar um dos botões que pertençam ao mesmo grupo. Se os
botões não forem agrupados, o usuário pode selecionar mais de
uma opção (funcionando da mesma forma que JCheckBox).

59
Inclusão de áreas de texto
n As áreas de texto geradas a partir da classe JTextArea são
semelhantes às caixas de texto, porém permitem manipular
diversas linhas de texto ao mesmo tempo.

60
Exercício - Usando Swing

61
Exercício - Usando Swing

62
Exercício

63
Exercícios – Desenvolver
Calculadora

64
Inclusão de barras de progresso
n Muitas vezes, a execução de um programa leva certo tempo para
ser concluída. Nesse caso, talvez seja importante adicionar uma
imagem que informe o andamento do processo ao usuário.
n Na criação de sistemas é sempre importante prover feedback ao
usuário, ou seja, ele precisa estar informado sobre o que acontece
durante a execução do sistema.
n Exemplos triviais sobre isso são: o processo de download na
Internet e a instalação de programas. Em casos como esses,
podemos utilizar a barra de progresso.

65
Inclusão de abas
n A inclusão de abas (ou guias) permite agrupar diversas telas num
só componente. Essa caracterís- tica é possível utilizando a classe
JTabbedPane, que permite ao usuário escolher diferentes grupos
de componentes clicando numa aba que contém um título e/ou um
ícone. A Tabela 8.18 mostra um resumo dos métodos mais
utilizados da classe JTabbledPane.

66
Inclusão de abas

67
Inclusão de grades - Tabelas
n Uso de grades por meio da classe JTable, um componente que
permite mostrar e editar uma tabela de duas dimensões.
n O estudo da classe JTable é relativamente extenso (existem mais
de 130 métodos nessa classe).

68
Inclusão de grades - Tabelas

69
Exercício
n Uso de grades por meio da classe JTable, um componente que
permite mostrar e editar uma tabela de duas dimensões.
n O estudo da classe JTable é relativamente extenso (existem mais
de 130 métodos nessa classe).

70
Conversão de tipos
n Em diversas aplicações em Java é preciso realizar a conversão dos
diversos tipos primitivos existentes. A linguagem Java possui uma
série de classes que realizam essa tarefa. A Tabela apresenta
algumas conversões de tipos. As palavras principais usadas na
conversão aparecem em negrito.

71
Conversão de tipos

72
JFrame
n JDesktopPane e JInternalFrame
n São classes que fornecem suporte a criação de
interfaces de multiplos documentos. Uma janela
principal (pai) contém e gerencia outras janelas (filhas).

73
Manipulação de Datas
n Por muitos anos, na linguagem Java tivemos dificuldades com a
manipulação de datas e horas. Como primeiro recurso disponível,
tivemos a classe java.util.Date, mas que rapidamente passou a ser
considera da complexa e bastante limitada.

n Em 1998, a IBM desenvolveu e disponibilizou a classe


java.util.Calendar, com recursos como internacionalização, métodos
para alterar individualmente o dia, o mês ou o ano de uma data,
variáveis estáticas pré-definidas com a descrição dos dias da
semana e dos meses do ano, entre outros que eram inexistentes na
classe Date.

74
Manipulação de Datas
n Por muitos anos, na linguagem Java tivemos dificuldades com a
manipulação de datas e horas. Como primeiro recurso disponível,
tivemos a classe java.util.Date, mas que rapidamente passou a ser
considera da complexa e bastante limitada.

n Em 1998, a IBM desenvolveu e disponibilizou a classe


java.util.Calendar, com recursos como internacionalização, métodos
para alterar individualmente o dia, o mês ou o ano de uma data,
variáveis estáticas pré-definidas com a descrição dos dias da
semana e dos meses do ano, entre outros que eram inexistentes na
classe Date.

75
LocalDate, LocalTime e LocalDateTime
n Classe LocalDate:

76
LocalDate, LocalTime e LocalDateTime
n Classe LocalDate:

77
LocalDate, LocalTime e LocalDateTime
n Método Inserir:

78
LocalDate, LocalTime e LocalDateTime
n método Consultar:

79
LocalDate, LocalTime e LocalDateTime
n Vocês podem criar métodos para criar funções para executar as
conversões automáticas. Por exemplo:

80

S-ar putea să vă placă și