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/Image
Icon.html
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)
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
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 evento
de ação
• Vantagem: se tiver que agir diretamente sobre o
componente, pode fazer isso por intermédio de sua
referencia
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 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
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/JB
utton.html
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)
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)
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
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
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
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
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
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
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
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 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
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
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.
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
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
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
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
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
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
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
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
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
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 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.
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.
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
JFileChooser
• Exemplo
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
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
EXERCÍCIOS

Interfaces Gráficas em Java Parte 2

  • 1.
    INTERFACES GRÁFICAS SWING –PARTE 2 Prof.ª M.ª Elaine Cecília Gatto
  • 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ãode 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 deaçã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
  • 11.
    JBUTTON • Botão deaçã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/JB utton.html
  • 12.
    JBUTTON • setEnable(): desativaum 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 dealternâ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 umevento 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 • É umacaixa 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 derá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 ainserçã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(): removequalquer 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 • É umcontê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 • É umalista 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 umLISTSELECTIONEVENT • 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 aousuá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çãode 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çãocomeç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 • É umacaixa 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 umevento 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(): obtemo 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 • É umcomponente 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: encapsulainformaçõ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: interfacepara 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 parausar 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 • É umcomponente 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 • É umdos 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 deveser 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
  • 39.
  • 40.
    MODELOS • A maioriados 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 ofereceuma 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
  • 42.