interfaces gráficas em java parte 2

42
INTERFACES GRÁFICAS SWING – PARTE 2 Prof.ª M.ª Elaine Cecília Gatto

Upload: elaine-cecilia-gatto

Post on 22-Jan-2018

84 views

Category:

Education


7 download

TRANSCRIPT

Page 1: Interfaces Gráficas em Java Parte 2

INTERFACES GRÁFICAS SWING – PARTE 2

Prof.ª M.ª Elaine Cecília Gatto

Page 2: Interfaces Gráficas em Java Parte 2

JLABEL e IMAGEICON

• https://docs.oracle.com/javase/8/docs/api/javax/swing/JLabel.html

• https://docs.oracle.com/javase/8/docs/api/javax/swing/ImageIcon.html

Page 3: Interfaces Gráficas em Java Parte 2

JLABEL e IMAGEICON

• https://docs.oracle.com/javase/8/docs/api/javax/swing/JLabel.html

• Controle: Componentes que interagem diretamente com ousuário

• JLABEL: cria um rótulo e é um componente passivo

• Construtores de JLABEL:

• JLabel(String texto, int alinhameto)

• JLabel(Icon ícone, int alinhamento)

• JLabel(String texto, Icon ícone, int alinhamento)

Page 4: Interfaces Gráficas em Java Parte 2

JLABEL e IMAGEICON

• String texto: texto do rótulo

• Icon ícone: imagem gráfica

• Int alinhamento: alinhamento horizontal dentro dasdimensões. Valores: left, right, center, leading, trailing.

• Leading e trailing especificam borda anterior e posterior

• ImageIcon: classe para usar imagens (gif, jpeg ou png)

• Exemplo IMAGEICON

Page 5: Interfaces Gráficas em Java Parte 2

BOTÕES

• JButton: botão de ação padrão

• JToggleButton: botão com dois estados

• JCheckBox: botão de seleção padrão

• JRadioButton: botão de seleção mutuamente exclusivo

• Três categorias de eventos:

• Ação

• Item

• Mudança

Page 6: Interfaces Gráficas em Java Parte 2

BOTÕES

• Evento de ação: quando o usuário executa uma ação

• Evento de item: quando um botão é marcado ou desmarcado

• Evento de mudança: quando o estado do botão muda

Page 7: Interfaces Gráficas em Java Parte 2

EVENTOS DE AÇÃO

• É gerado quando o usuário clica em um botão

• ACTIONEVENT representa um evento de ação

• ACTIONLISTENER: interface

• ACTIONPERFORMED: método

• Duas formas de identificar o componente:

• String do comando de ação

• Referência do objeto

Page 8: Interfaces Gráficas em Java Parte 2

EVENTOS DE AÇÃO

• getSource():

• Obtém a referencia do componente que gerou um eventode ação

• Vantagem: se tiver que agir diretamente sobre ocomponente, pode fazer isso por intermédio de suareferencia

Page 9: Interfaces Gráficas em Java Parte 2

EVENTOS DE ITEM

• Ocorre quando um item é selecionado

• ItemEvent: classe que representa os eventos de item

• ItemListener: interface

• itemStateChanged(ItemEvent ie): método

• ie é um objeto de ItemEvent que recebe o evento de item

• getItem(): obtém uma referencia ao item que mudou

Page 10: Interfaces Gráficas em Java Parte 2

EVENTOS DE ITEM

• Quando um evento de item ocorre, o componente ou ficamarcado ou desmarcado (um dos dois estados)

• Static final int selected = item marcado

• Static final int deselected = item desmarcado

• getStateChange(): óbtem o novo estado do componente

• isSelected(): retorna true se o botão estiver selecionado,false caso contrário

Page 11: Interfaces Gráficas em Java Parte 2

JBUTTON

• Botão de ação

• Construtores:• JButton(Icon icon)• JButton(String str)• JButton(String str, Icon icon)

• Exemplo JBUTTON

• https://docs.oracle.com/javase/8/docs/api/javax/swing/JButton.html

Page 12: Interfaces Gráficas em Java Parte 2

JBUTTON

• setEnable(): desativa um botão deixando o seu texto emcinza

• Jbutton permite definir ícones para serem exibidos naocorrência de certas ações de botão:

• Botão inativo: setDisabelIcon(Icon icone)

• Botão pressionado: setPressedIcon(Icon ícone)

• Mouse rolado para cima: setRolloverIcon(Icon ícone)

Page 13: Interfaces Gráficas em Java Parte 2

JTOGGLEBUTTON

• Botão de alternância

• Tem a mesma aparência de um botão de ação

• Tem dois estados: pressionado e solto

• Quando este botão é pressionado ele fica pressionado, sósolta quando pressionarmos novamente

• Por padrão o botão quando é criado fica no estadodesativado

• JTOGGLEBUTTON(STRING STR)

Page 14: Interfaces Gráficas em Java Parte 2

JTOGGLEBUTTON

• Gera um evento de item

• Quando este botão é pressionado uma seleção é feita

• Quando é solto, a seleção é anulada

• isSelected(): método que determina o estado do botão

• ItemListener: interface

• itemStateChanged(): método da interface

• EXEMPLO JTOGGLEBUTTON

• https://docs.oracle.com/javase/8/docs/api/javax/swing/JToggleButton.html

Page 15: Interfaces Gráficas em Java Parte 2

JCheckBox

• É uma caixa de seleção

• Gera um ItemEvent

• getItem(): método para obter uma referencia

• isSelected(): determina o estado da caixa

• getText(): obtém o texto da caixa de seleção

• https://docs.oracle.com/javase/8/docs/api/javax/swing/JCheckBox.html

Page 16: Interfaces Gráficas em Java Parte 2

JRADIOBUTTON

• Botões de rádio

• Grupo de botões mutuamente exclusivos

• Somente um botão de cada vez pode ser pressionado

• Se um botão em um grupo, for pressionado, qualquer botãopressionado anteriormente nesse grupo, perderá o estadode pressionado

• Gera eventos de item, de ação e de mudança

• Exemplo JRadioButton

• https://docs.oracle.com/javase/8/docs/api/javax/swing/JRadioButton.html

Page 17: Interfaces Gráficas em Java Parte 2

JTEXTFIELD

• Permite a inserção de uma única linha de texto

• O comando de ação é o conteúdo atual do campo de texto

• getText()

• setText()

• getSelectedText(): retorna NULL se não houver textoselecionado

• https://docs.oracle.com/javase/8/docs/api/javax/swing/JTextField.html

Page 18: Interfaces Gráficas em Java Parte 2

JTEXTFIELD

• Cut(): remove qualquer texto que tenha sido selecionado dentrodo campo de texto e copia na área de transferência

• Copy(): copia, sem remover, o texto selecionado

• Paste(): copia qualquer texto que possa estar na área detransferência para o campo de texto. Se o campo tiver textoselecionado, ele será substituído pelo conteúdo da área detransferência.

• Exemplo

Page 19: Interfaces Gráficas em Java Parte 2

JSCROLLPANE

• É um contêiner leve que trata automaticamente a rolagemde outro componente leve

• O componente rolado pode ser individual ou um grupo decomponentes

• Se o objeto de rolagem for maior que a área visualizável, asbarras serão fornecidas automaticamente

• Automatiza a rolagem

• Elimina a necessidade de gerenciar as barras individuais

Page 20: Interfaces Gráficas em Java Parte 2

JSCROLLPANE

• Viewport:• É a área visualizave de um painel de rolagem• É uma janela em que o componente que está sendo

rolado é exibido

• Adiciona/remove uma barra de rolagem conforme anecessidade

• https://docs.oracle.com/javase/8/docs/api/javax/swing/JScrollPane.html

Page 21: Interfaces Gráficas em Java Parte 2

JSCROLLPANE

• JSCROLLPANE(Component comp)

• Comp é o componente a ser rolado

• Etapas de criação:

• Criar o componente a ser rolado

• Criar uma instancia de JSCROLLPANE

• Adicionar o painel de rolagem ao painel de conteúdo

Page 22: Interfaces Gráficas em Java Parte 2

JLIST

• É uma lista básica

• Dá suporte a seleção de um ou mais itens em uma lista

• JLIST é um tipo genérico

JLIST < E >

• E é o tipo dos itens da Lista

• https://docs.oracle.com/javase/8/docs/api/javax/swing/JList.html

Page 23: Interfaces Gráficas em Java Parte 2

JLIST

JLIST ( E [ ] ITENS )

• Cria um JLIST contendo os itens do array especificado poritens

• Normalmente é encapsulado dentro de um JScrollPane

• Listas longas são automaticamente roláveis

• Facilidade na alteração do número de entradas de uma listasem precisar mudar o tamanho do componente JLIST

Page 24: Interfaces Gráficas em Java Parte 2

JLIST

• Gera um LISTSELECTIONEVENT

• Ocorre quando o usuário faz ou altera uma seleção oudesmarca um item

• LISTSELECTIONLISTENER: tratador

• valueChanged(): método do tratador

• Normalmente é necessário perguntar ao objeto JLIST o queaconteceu

Page 25: Interfaces Gráficas em Java Parte 2

JLIST

• Permite ao usuário selecionar vários intervalos de itensdentro da lista

• setSelectionMode(int modo): permite mudar o modo deseleção dos itens

• SINGLE_SELECTION: seleção simples, apenas um itempode ser selecionado.

Page 26: Interfaces Gráficas em Java Parte 2

JLIST

• SINGLE_INTERVAL_SELECTION: seleção de intervalosimples, um intervalo de itens pode ser selecionado

• MULTIPLE_INTERVAL_SELECTION: seleção de múltiplosintervalos que permite selecionar vários intervalos de umalista

• getSelectedIndex(): Um índice do primeiro item selecionadopode ser obtido

Page 27: Interfaces Gráficas em Java Parte 2

JLIST

• A indexação começa com zero

• Se nenhum item estiver selecionado ele retorna -1

• getSelectedValue(): retorna uma referencia ao primeiro valorselecionado

• NULL é retornado se não houver nada selecionado

• clearSelection(): desmarca todas as seleções

Page 28: Interfaces Gráficas em Java Parte 2

JCOMBOBOX

• É uma caixa de combinação: campo de texto + listasuspensa

• JComboBox <E>

• E é o tipo dos elementos contidos na lista

• JComboBox ( E [ ] itens )

• Itens é um array que inicializa a caixa de combinação

Page 29: Interfaces Gráficas em Java Parte 2

JCOMBOBOX

• Gera um evento de ação quando o usuário seleciona umitem na lista

• Gera um evento de item quando o estado da seleção muda

• Uma mudança na seleção significa dois eventos de item:item desmarcado e item selecionado

Page 30: Interfaces Gráficas em Java Parte 2

JCOMBOBOX

• getSelectedItem(): obtem o item selecionado

• addItem(E item) e removeItem(E item): permite adicionarou remover itens da lista suspensa dinamicamente, durantea execução do programa

• Quando um item é adicionado, ele é inserido no fim da lista.

• https://docs.oracle.com/javase/8/docs/api/javax/swing/JComboBox.html

Page 31: Interfaces Gráficas em Java Parte 2

JTree

• É um componente que apresenta uma visão hierárquica dosdados

• Subarvores podem ser expandidas ou reduzidas

• JTree(Object [ ] objeto ): array de objetos

• Jtree (TreeNode no): nó de árvore

• Gera vários eventos

Page 32: Interfaces Gráficas em Java Parte 2

JTree

• Tratador: TreeSelectionEvent

• Ouvinte: TreeSelecionListener

• Método: valueChanged()

• getPatch(): obtem o caminho do objeto selecionado. Retorna umobjeto que descreve o caminho do NÓ selecionado

Page 33: Interfaces Gráficas em Java Parte 2

JTree

• TreePath: encapsula informações sobre o caminho de um nóespecífico de uma árvore

• getLastPathComponente(): retorna o último nó do caminhoselecionado

• TreeNode: fornece métodos para obter informações sobre onó de uma árvore

Page 34: Interfaces Gráficas em Java Parte 2

JTree

• MutableTreeNode: interface para implementação demétodos para inserir e remover nós filhos ou mudar o nó pai

• DefaultMutableTreeNode: interface que representa um nó deuma árvore

• JTree NÃO fornece nenhum recurso próprio de rolagem.

• JTree deve ser inserido dentro de um JScrooPane

Page 35: Interfaces Gráficas em Java Parte 2

JTree

• Etapas para usar uma árvore:• Criar uma instancia de Jtree• Adicionar os nós a arvore• Criar um JScrollPane• Adicionar o painel de rolagem ao painel de conteúdo

• EXEMPLO

• https://docs.oracle.com/javase/8/docs/api/javax/swing/JTree.html

Page 36: Interfaces Gráficas em Java Parte 2

JTABLE

• É um componente que exibe linhas e colunas de dados

• Arrastando o cursor sobre os limites da coluna, as mesmassão redimensionadas

• Uma coluna pode ser arrastada para uma nova posição

• Permite selecionar uma linha, uma coluna e uma célula,alterar dados da célula.

Page 37: Interfaces Gráficas em Java Parte 2

JTABLE

• É um dos componentes mais complicados de Swing

• Fácil de usar se o intuito for apenas apresentar dados emformato tabular

• Conceito simples: basicamente um componente com umaou mais colunas de informações. No topo de cada coluna háum cabeçalho.

Page 38: Interfaces Gráficas em Java Parte 2

JTABLE

• JTable deve ser inserido dentro de um JScrollPane

• Pode gerar vários eventos diferentes, o que é bemcomplexo.

• Passos:

• Criar uma instancia de Jtable

• Criar um objeto de JScrollPane

• Adicionar o painel de rolagem ao painel de conteúdo

Page 39: Interfaces Gráficas em Java Parte 2

JFileChooser

• Exemplo

Page 40: Interfaces Gráficas em Java Parte 2

MODELOS

• A maioria dos controles do Swing utiliza um modelo quedetermina como os dados associados a um controle são tratados

• O modelo padrão fornecido pelos controles do Swingnormalmente são suficientes

• Em GUIs mais avançadas talvez seja necessário trabalhar comos modelos diretamente

Page 41: Interfaces Gráficas em Java Parte 2

MODELOS

• Swing oferece uma rica variedade de controles que facilitam acriação de GUIS amigáveis e sofisticadas

• Swing dá suporte a um poderoso sistema de menus, várioscontroles de diálogos internos e outros controles de interface.

• JFormattedTextField, JPasswordField, JProgressBar, JScrollBar,JSlider, Jspinner, JTabbedPane, JTextArea, JToolBar

Page 42: Interfaces Gráficas em Java Parte 2

EXERCÍCIOS