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/Image
Icon.html
3. JLABEL e IMAGEICON
• https://docs.oracle.com/javase/8/docs/api/javax/swing/JLabel
.html
• Controle: Componentes que interagem diretamente com o
usuá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)
4. JLABEL e IMAGEICON
• String texto: texto do rótulo
• Icon ícone: imagem gráfica
• Int alinhamento: alinhamento horizontal dentro das
dimensõ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
5. 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
6. 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
7. 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
8. EVENTOS DE AÇÃO
• getSource():
• Obtém a referencia do componente que gerou um evento
de ação
• Vantagem: se tiver que agir diretamente sobre o
componente, pode fazer isso por intermédio de sua
referencia
9. 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
10. EVENTOS DE ITEM
• Quando um evento de item ocorre, o componente ou fica
marcado 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
12. JBUTTON
• setEnable(): desativa um botão deixando o seu texto em
cinza
• Jbutton permite definir ícones para serem exibidos na
ocorrê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)
13. 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 estado
desativado
• JTOGGLEBUTTON(STRING STR)
14. 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/JToggl
eButton.html
15. 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/JChec
kBox.html
16. 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ão
pressionado anteriormente nesse grupo, perderá o estado
de pressionado
• Gera eventos de item, de ação e de mudança
• Exemplo JRadioButton
• https://docs.oracle.com/javase/8/docs/api/javax/swing/JRadi
oButton.html
17. 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 texto
selecionado
• https://docs.oracle.com/javase/8/docs/api/javax/swing/JTextF
ield.html
18. JTEXTFIELD
• Cut(): remove qualquer texto que tenha sido selecionado dentro
do 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 de
transferência para o campo de texto. Se o campo tiver texto
selecionado, ele será substituído pelo conteúdo da área de
transferência.
• Exemplo
19. JSCROLLPANE
• É um contêiner leve que trata automaticamente a rolagem
de outro componente leve
• O componente rolado pode ser individual ou um grupo de
componentes
• Se o objeto de rolagem for maior que a área visualizável, as
barras serão fornecidas automaticamente
• Automatiza a rolagem
• Elimina a necessidade de gerenciar as barras individuais
20. 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 a
necessidade
• https://docs.oracle.com/javase/8/docs/api/javax/swing/JScroll
Pane.html
21. 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
22. 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
23. JLIST
JLIST ( E [ ] ITENS )
• Cria um JLIST contendo os itens do array especificado por
itens
• Normalmente é encapsulado dentro de um JScrollPane
• Listas longas são automaticamente roláveis
• Facilidade na alteração do número de entradas de uma lista
sem precisar mudar o tamanho do componente JLIST
24. JLIST
• Gera um LISTSELECTIONEVENT
• Ocorre quando o usuário faz ou altera uma seleção ou
desmarca um item
• LISTSELECTIONLISTENER: tratador
• valueChanged(): método do tratador
• Normalmente é necessário perguntar ao objeto JLIST o que
aconteceu
25. JLIST
• Permite ao usuário selecionar vários intervalos de itens
dentro da lista
• setSelectionMode(int modo): permite mudar o modo de
seleção dos itens
• SINGLE_SELECTION: seleção simples, apenas um item
pode ser selecionado.
26. JLIST
• SINGLE_INTERVAL_SELECTION: seleção de intervalo
simples, um intervalo de itens pode ser selecionado
• MULTIPLE_INTERVAL_SELECTION: seleção de múltiplos
intervalos que permite selecionar vários intervalos de uma
lista
• getSelectedIndex(): Um índice do primeiro item selecionado
pode ser obtido
27. JLIST
• A indexação começa com zero
• Se nenhum item estiver selecionado ele retorna -1
• getSelectedValue(): retorna uma referencia ao primeiro valor
selecionado
• NULL é retornado se não houver nada selecionado
• clearSelection(): desmarca todas as seleções
28. JCOMBOBOX
• É uma caixa de combinação: campo de texto + lista
suspensa
• JComboBox <E>
• E é o tipo dos elementos contidos na lista
• JComboBox ( E [ ] itens )
• Itens é um array que inicializa a caixa de combinação
29. JCOMBOBOX
• Gera um evento de ação quando o usuário seleciona um
item 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
30. JCOMBOBOX
• getSelectedItem(): obtem o item selecionado
• addItem(E item) e removeItem(E item): permite adicionar
ou remover itens da lista suspensa dinamicamente, durante
a execução do programa
• Quando um item é adicionado, ele é inserido no fim da lista.
• https://docs.oracle.com/javase/8/docs/api/javax/swing/JComboB
ox.html
31. JTree
• É um componente que apresenta uma visão hierárquica dos
dados
• Subarvores podem ser expandidas ou reduzidas
• JTree(Object [ ] objeto ): array de objetos
• Jtree (TreeNode no): nó de árvore
• Gera vários eventos
32. JTree
• Tratador: TreeSelectionEvent
• Ouvinte: TreeSelecionListener
• Método: valueChanged()
• getPatch(): obtem o caminho do objeto selecionado. Retorna um
objeto que descreve o caminho do NÓ selecionado
33. JTree
• TreePath: encapsula informações sobre o caminho de um nó
específico de uma árvore
• getLastPathComponente(): retorna o último nó do caminho
selecionado
• TreeNode: fornece métodos para obter informações sobre o
nó de uma árvore
34. JTree
• MutableTreeNode: interface para implementação de
métodos para inserir e remover nós filhos ou mudar o nó pai
• DefaultMutableTreeNode: interface que representa um nó de
uma árvore
• JTree NÃO fornece nenhum recurso próprio de rolagem.
• JTree deve ser inserido dentro de um JScrooPane
35. 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
36. JTABLE
• É um componente que exibe linhas e colunas de dados
• Arrastando o cursor sobre os limites da coluna, as mesmas
sã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.
37. JTABLE
• É um dos componentes mais complicados de Swing
• Fácil de usar se o intuito for apenas apresentar dados em
formato tabular
• Conceito simples: basicamente um componente com uma
ou mais colunas de informações. No topo de cada coluna há
um cabeçalho.
38. JTABLE
• JTable deve ser inserido dentro de um JScrollPane
• Pode gerar vários eventos diferentes, o que é bem
complexo.
• Passos:
• Criar uma instancia de Jtable
• Criar um objeto de JScrollPane
• Adicionar o painel de rolagem ao painel de conteúdo
40. MODELOS
• A maioria dos controles do Swing utiliza um modelo que
determina como os dados associados a um controle são tratados
• O modelo padrão fornecido pelos controles do Swing
normalmente são suficientes
• Em GUIs mais avançadas talvez seja necessário trabalhar com
os modelos diretamente
41. MODELOS
• Swing oferece uma rica variedade de controles que facilitam a
criação de GUIS amigáveis e sofisticadas
• Swing dá suporte a um poderoso sistema de menus, vários
controles de diálogos internos e outros controles de interface.
• JFormattedTextField, JPasswordField, JProgressBar, JScrollBar,
JSlider, Jspinner, JTabbedPane, JTextArea, JToolBar