• Nenhum resultado encontrado

Programação Orientada a Objetos Interface Gráfica Parte I

N/A
N/A
Protected

Academic year: 2021

Share "Programação Orientada a Objetos Interface Gráfica Parte I"

Copied!
86
0
0

Texto

(1)

Programação Orientada

a Objetos

Interface Gráfica

Parte I

Prof. Dr. Danilo Medeiros Eler [email protected]

FCT/Unesp – Presidente Prudente

Departamento de Matemática e Computação

Departamento de Matemática e Computação Faculdade de Ciências e Tecnologia Unesp – Universidade Estadual Paulista

(2)

2

Aula de Hoje

• Interface de Usuário (IU)

– User Interface (UI) – Interface Gráfica

(3)

3

Interface de Usuário

• Utilizaremos componentes do java para criar interfaces para entrada e saída de dados

• Faremos o exemplo de cadastro de Produto Nacional e Produto Importado • O modelo de dados e a classe

controladora já estão implementados,

faremos somente a interface, invocando os métodos da classe controladora para efetuar o cadastro

(4)

4

(5)

5

(6)

6

(7)

7

(8)

8

(9)

9

(10)

10

(11)

11

(12)

12

(13)
(14)
(15)

15

(16)
(17)
(18)
(19)

19

(20)

20

(21)

21

(22)

22

(23)

23

Alterando Propriedades

(24)

24

(25)

25

Adicionar Evento ao Item de Menu

(26)

26

Adicionar Evento ao Item de Menu

Modal = true – fica preso à janela, só volta à anterior se fechar a atual Modal = false – não fica preso à janela, pode interagir com a janela anterior

(27)

27

Adicionar Evento ao Item de Menu

(28)

28

(29)

29

(30)

30

(31)

31

(32)

32

(33)

33

Alterando Propriedades

(34)

34

(35)

35

Adicionar Evento no Item de Menu

(36)

36

(37)

37

(38)

Adicionando Caixas de Texto

e Botões

(39)

39

Componentes

Utilizado para identificar itens no formulário Pode ser utilizado para saída de dados

(40)

40

Componentes

Utilizado para entrada e saída de dados O usuário pode alterar o conteúdo dele

(41)

41

Componentes

(42)

42

Adicionando Componentes

• Clique no componente desejado e arraste até o formulário

• Altere o conteúdo dele

• Altere o nome da variável (altamente recomendável para facilitar a

programação)

– Tudo isso é realizado por meio do clique com o botão direito sobre o componente e depois escolhendo a opção desejada

(43)

43

(44)

44

(45)

45

(46)

46

(47)

47

(48)

48

(49)

49

(50)

50

Adicionando Componentes

• Alterar nome das variáveis que serão utilizadas na programação

(51)

51

Adicionando Componentes

• Alterar nome das variáveis que serão utilizadas na programação

(52)

52

Adicionando Componentes

• Alterar nome das variáveis que serão utilizadas na programação

(53)

53

Adicionando Componentes

• Alterar nome das variáveis que serão utilizadas na programação

(54)

54

Adicionando Componentes

• Os componentes também são exibidos aqui

(55)

55

(56)

56

(57)

57

(58)

58

(59)

59

(60)

60

(61)

61

(62)

62

Adicionando Evento do Botão

(63)

63

Adicionando Evento do Botão

Cadastro Nacional

• Recupera os dados das caixas de texto e invoca o método addProdutoNacional da classe

ControladorProdutos (variável sistema), que é uma instância estática na classe IUPrincipal

(64)

64

Adicionando Evento do Botão

(65)

65

Adicionando Evento do Botão

Cadastro Importado

• Recupera os dados das caixas de texto e invoca o método addProdutoImportado da classe

ControladorProdutos (variável sistema), que é uma instância estática na classe IUPrincipal

(66)

66

Adicionando Evento do Botão

• Da maneira que o código está especificado é possível inserir vários produtos iguais, clicando várias vezes no botão

• Para evitar podemos:

– Fechar a janela ao cadastrar

• this.setVisible(false); --- esconde a janela, mas o objeto ainda existe

• this.dispose(); --- elimina o objeto da memória

– Limpar os campos ao cadastrar e limitar para não inserir campos vazios

– Verificar se o código do produto já existe, utilizando o método de busca implementado na classe Sistema

(67)

67

(68)

Estratégia para evitar cadastro

de produtos com mesmo código

(69)

69

Estratégia para evitar cadastro de

produtos com mesmo código

• Quando for digitado o código de um

produto faremos uma busca pelo código

– Se o código existir, exibiremos os seus dados e bloquearemos o botão Adicionar

• adicionar_Button.setEnable(false);

– Caso contrário, limparemos os campos e habilitaremos o botão Adicionar

(70)

70

Estratégia para evitar cadastro de

produtos com mesmo código

• Utilizaremos o evento LostFocus da caixa de texto do botão

• Sempre que ela perder o foco, faremos a busca pelo código digitado

(71)

71

Estratégia para evitar cadastro de

produtos com mesmo código

(72)

72

Estratégia para evitar cadastro de

produtos com mesmo código

(73)

73

Executando

(74)

74

Executando

(75)

75

Executando

(76)

76

Estratégia para evitar cadastro de

produtos com mesmo código

• Um JLabel pode ser utilizado para exibir mensagens para o usuário, assim

evitamos de utilizar o JOptionPane

– A mensagem pode ser passada para ele e torná-lo visível

• msg_Label.setVisible(true);

– Caso não seja necessário uma mensagem, ele se torna invisível

(77)

77

Alterar Nome de Variável e

Conteúdo

(78)
(79)

79

(80)

80

Mudar Propriedades

• No construtor da classe IUCadastroNacional colocar como invisível

(81)

81

(82)

82

Executando

• Produto não cadastrado – Não precisa de mensagem

(83)

83

Executando

• Produto cadastrado – Precisa de mensagem

(84)

84

Destacando a Mensagem

• Podemos alterar a cor e fonte do JLabel para destacar a mensagem

(85)

85

(86)

86

Referências

Documentos relacionados

– Tipo de dados que o objeto armazena, ou seja, os estados possíveis que ele pode assumir (atributos) – Tipos de operações que podem ser executadas pelo. objeto, ou seja, o

para o usuário digitar um nome; pega o valor digitado e altera na variável nome do objeto da Conta Bancária, através do método Alterar Nome.. Realiza saque/depósito, e depois

– Crie um construtor parametrizado inicializando todas as variáveis com os valores recebidos dos parâmetros. – Crie um construtor default (Inicializando as variáveis da

• Diferentes componentes de um sistema não devem revelar detalhes internos de suas..

• É possível comprar acessando o método comprar, passando como parâmetro dois objetos, um do tipo Pessoa e outro do tipo Produto.. M.; Programação Orientada

– É o processo de esconder todos os detalhes de um objeto que não contribuem para suas características

– Pode ser acessado por qualquer outra classe em qualquer outro pacote.

• Projeção de classes genéricas que podem ser especializadas em classes mais particulares3. • Classes especializadas reutilizam o código das