Orientação a Objetos Componentes: JComboBox/ JList/ JScrollPane ItemListener/ ListSelectionListener Gil Eduardo de Andrade
Componentes Gráficos: JComboBox A classe JComboBox (import java.swing.jcombobox) A classe JComboBoxpermite a inserção de caixas de combinação em formulários Java (janelas); A sua utilização é recomendada quando precisamos disponibilizar várias opções de seleção ao usuário, mas não queremos ocupar muito espaço da janela; As opções do JComboBoxficam minimizadas e apenas uma pode ser selecionada; Aula 14: Componentes: JComboBox, JList e JScrollPane Gil Eduardo de Andrade
Componentes Gráficos: JComboBox A classe JComboBox Ao instanciar um objeto da classe JComboBox, não é passado, normalmente, nenhum parâmetro ao seu construtor; JComboBox jcm_estado = new JComboBox();
Componentes Gráficos: JComboBox A classe JComboBox Após instanciar um objeto da classe JComboBox, considerando umjframecom layout null, utilizamos o método: setbounds(pos_x, pos_y, largura, altura), que permite configurar a localização e dimensão do componentes dentro da janela;
Componentes Gráficos: JComboBox O método additem() O método additem() permite adicionarmos os itens (opções) que serão apresentados pelo componente e que serão escolhidos pelo usuário; Por exemplo para o JCombo estado teríamos: jcm_estado.additem( Paraná ); jcm_estado.additem( Santa Catarina );
Componentes Gráficos: JComboBox Exemplo: Criando um JComboBox
Componentes Gráficos: JComboBox Exemplo: Criando um JComboBox Continuação do código do slide anterior
Componentes Gráficos: JComboBox Exemplo: Criando um JComboBox Resultado da Execução
Componentes Gráficos: JList A classe JList (import java.swing.jlist) A classe JListpermite a inserção de listas de elementos em formulários Java (janelas); Sua utilização é recomendada quando precisamos disponibilizar várias opções de seleção, e queremos deixá-las, em sua maioria, visíveis ao usuário; O JListpermite a seleção de apenas uma das opções ou várias delas;
Componentes Gráficos: JList A classe JList Ao instanciar um objeto da classe JList, é passado ao seu construtor (mas não necessariamente) um objeto da classe DefaultListModelque contém os elementos a serem apresentados pelo JList; JList jlt_estado = new JList(lm_estado);
Componentes Gráficos: JList O método setselectionmode O JListpossui o método setselectionmode() que permite especificar quantos elementos da lista podem ser selecionados ao mesmo tempo; Por padrão, mais de um elemento pode ser selecionado, porém, caso haja necessidade de modificar essa configuração, utiliza-se a: jlt_estado.setselectionmode(listselectionmodel.single_selection);
Componentes Gráficos: JList O método setlayoutorientation O JListtambémpossui o método setlayoutorientation() que permite especificar a orientação (Horizontal/Vertical) de funcionamento do JList; jlt_estado.setlayoutorientation(jlist.vertical); jlt_estado.setlayoutorientation(jlist.vertical_wrap); jlt_estado.setlayoutorientation(jlist.horizontal_wrap);
Componentes Gráficos: JList O método setlayoutorientation O método de layoutpara orientação, está vinculado a utilização de barras de rolagem (scroll), representadas pela classe JScrollPane; No slide anterior quando usamos JList.VERTICAL estamos dizendo que o scrollserá vertical e só aparecerá quando o número de componentes a ser apresentado for maior que área visível do JList;
Componentes Gráficos: JList O método setlayoutorientation Quando usamos JList.VERTICAL_WRAP estamos dizendo que o scrollserá vertical e aparecerá mesmo que o número de componentes a ser apresentado seja menor que área visível do JList; E quando usamos JList.HORIZONTAL_WRAPestamos fazendo o mesmo do JList.VERTICAL_WRAP,porém o scroll será horizontal;
Componentes Gráficos: JList A classe DefaultListModel (import java.swing.defaultlistmodel) A classe DefaultListModeldefine um modelo de lista padrão que será vinculado ao JList; Sendo assim, os elementos a serem apresentados pelo JListsão adicionados a um objeto da classe DefaultListModele então esse objeto é vinculado a JList;
Componentes Gráficos: JList O método addelement() A classe DefaultListModelpossui um método denominado addelement()que permite adicionar os elementos a serem apresentados pelo JList a ela vinculado; DefaultListModel lm_estado = new DefaultListModel(); lm_estado.addelement( Paraná );
Componentes Gráficos: JList A classe JScrollPane (import java.swing.jscrollpane) A classe JScrollPanepermite adicionarmos barra de rolagem aos componentes gráficos swing; A JScrollPaneé utilizada quando necessitamos apresentar mais elementos do que o espaço visível do componente permite;
Componentes Gráficos: JList A classe JScrollPane Ao instanciarmos um objeto da classe JScrollPanepassamos ao seu construtor o objeto do componente o qual queremos agregar a barra de rolagem, nesse caso, o objeto da classe JList: JScrollPane jsp_estado = new JScrollPane(jlt_estado);
Componentes Gráficos: JList A classe JScrollPane Após sua instância, ao considerar um JFrame com layout null, utiliza-se o método setbounds(int, int, int, int), quepermite configurar a localização e dimensão do componente dentro da janela;
Componentes Gráficos: JList Exemplo: Criando um JList/JScrollPane
Componentes Gráficos: JList Exemplo: Criando um JList/JScrollPane Continuação do código do slide anterior
Componentes Gráficos: JList Exemplo: Criando um JList/JScrollPane Continuação do código do slide anterior
Componentes Gráficos: JList Exemplo: Criando um JList/JScrollPane É possível selecionar mais de um elemento! É possível selecionar apenas um elemento! Resultado da Execução setselectionmode(listselectionmodel. SINGLE_SELECTION);
Eventos ItemListener Eventos com JComboBox Assim como quando vimos os componentes JCheckBox e JRadioButton, o JComboBox também é orientado a eventos e utiliza a interface ItemListenner para ouví-los; Sendo assim, para capturarmos a ação de selecionar um item (ComboBox),torna-se necessário o registro desse evento;
Eventos ItemListener Eventos com JComboBox Para o registro desse evento, torna necessária a implementação da interface ItemListener e a utilização do método additemlistener() ; O método ItemStateChanged() deve ser declarado e implementado dentro da classe responsável por implementar a interface ItemListener ;
Eventos ItemListener Exemplo: Evento JComboBox
Eventos ItemListener Exemplo: Evento JComboBox Continuação do código do slide anterior
Eventos ItemListener Exemplo: Evento JComboBox Continuação do código do slide anterior
Eventos ItemListener Exemplo: Evento JComboBox Continuação do código do slide anterior
Eventos ItemListener Exemplo: Evento JComboBox Inicialmente desabilitado Resultado da Execução
Eventos ItemListener Exemplo: Evento JComboBox Após Capturar o evento de seleção do estado, habilita e carrega o ComboBoxde cidades de acordo com o estado selecionado! Selecionando o Estado
Eventos ItemListener Métodos Importantes: JComboBox Alguns métodos, apresentados no código exemplo anterior permitem dar acesso aos dados pertencentes ao ComboBox: intgetselectedindex(): retorna um inteiro contendo o índice do item selecionado; ObjectgetItemAt(inti): retorna o objeto que representa o item que está no índice i utilizadoem conjuntos com o método tostring() retorna o texto do item em i ;
Eventos ItemListener Métodos Importantes: JComboBox voidremoveallitems(): permite remover todos os elementos do ComboBox; voidadditem(objectobj): permite adicionar o elemento obj no ComboBox;
Eventos ListSelectionListener Eventos com JList Quando trabalhamos com JList, para capturarmos o evento de seleção de um elemento, utilizamos a interface ListSelectionListener; Sendo assim, para registrar esse evento, implementamos a interface ListSelectionListener e utilizamos o método addlistselectionlistener() ;
Eventos ListSelectionListener Eventos com JList O método valuechanged() deve ser declarado e implementado dentro da classe responsável por implementar a interface ListSelectionListener ;
Eventos ListSelectionListener Exemplo: Evento JList
Eventos ListSelectionListener Exemplo: Evento JList Continuação do código do slide anterior
Eventos ListSelectionListener Exemplo: Evento JList Continuação do código do slide anterior
Eventos ListSelectionListener Exemplo: Evento JList Inicialmente sem elementos Resultado da Execução
Eventos ListSelectionListener Exemplo: Evento JList Após Capturar o evento de seleção do estado, carrega o List de cidades de acordo com o estado selecionado! Selecionando o Estado
Eventos ListSelectionListener Exemplo: Evento JList Após selecionar elementos do List cidades a tecla ENTER é pressionada, o evento keylisteneré capturado e as cidades selecionadas são apresentadas por um JOptionPane! Selecionando Cidades
Eventos ListSelectionListener Métodos Importantes: JList Alguns métodos, apresentados no código exemplo anterior permitem dar acesso aos dados pertencentes ao JList: intgetselectedindex(): retorna um inteiro contendo o índice do elemento selecionado;
Eventos ListSelectionListener Métodos Importantes: JList int[]getselectedindices(): retorna um vetor de inteiros contendo os índices de todos os elementos selecionados; voidsetmodel(defaultlistmodeldlm): permite vincular a lista dlmao JList o dlmpossui os elementos a serem apresentados pelo JList;
Eventos ListSelectionListener Métodos Importantes: DefaultListModel Objectget(inti): retorna o objeto que representa o elemento que está no índice i utilizadoem conjuntos com o método tostring()retorna o texto do elemento em i ; voidremoveallelements(): permite remover todos os elementos do DefaultListModel/ JList; voidaddelement(objectobj): permite adicionar o elemento obj no DefaultListModel/ JList;