Date post: | 22-Jan-2018 |
Category: |
Education |
Upload: | elaine-cecilia-gatto |
View: | 83 times |
Download: | 7 times |
INTERFACES GRÁFICAS SWING – PARTE 2
Prof.ª M.ª Elaine Cecília Gatto
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
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)
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
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
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
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
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
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
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
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
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)
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)
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
JTree
• Tratador: TreeSelectionEvent
• Ouvinte: TreeSelecionListener
• Método: valueChanged()
• getPatch(): obtem o caminho do objeto selecionado. Retorna umobjeto que descreve o caminho do NÓ selecionado
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
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
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
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.
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.
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
JFileChooser
• Exemplo
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
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
EXERCÍCIOS