Upload
trinhkhuong
View
220
Download
0
Embed Size (px)
Citation preview
Auladehoje• CriaçãodeinterfacegráficaviabibliotecaSwing
– Containers– Componentes– Menu– Layout– Bordas– Eventos
Leonardo Murta Interface Gráfica Swing 2
PacotesdoSwing• AsclassesdoSwingestãodistribuídaspordiversospacotes.Osprincipaispacotessão:– javax.swing.*– javax.swing.event.*
• AlgumasclassesdospacotesanNgasdaAWTtambémsãouNlizadospeloSwing:– importjava.awt.*– importjava.awt.event.*
Leonardo Murta Interface Gráfica Swing 3
ComponenteseContainers• Ainterfacecomousuárioéorientadaajanelas
– Oselementosdeinterfacecomousuáriosãoclassificadoscomojanelas,containersecomponentes
– Asjanelassãoabasedainterfacecomousuário,contendoosdemaiselementos
– Oscontainerssãogruposdecomponentes,apresentadosemumaregiãodeteladefinida
– Oscomponentessãoosprincipaiselementosdeinterface,sendouNlizadosdiretamentepelousuário
Leonardo Murta Interface Gráfica Swing 5
ComponenteseContainers• Ajanela(JFrame)éocontainerdemaisaltonível
– AjanelaexisteparaproverespaçoparaapresentaçãodoscomponentesSwing
• Opainel(JPanel)éumcontainerintermediário– Ospainéisexistemparacontrolaroposicionamentodoscomponentes
• Componentesatômicos,comobotões(JBuZon)elinhasdeedição(JTextField),realizamainteraçãocomousuáriopropriamentedita
Leonardo Murta Interface Gráfica Swing 7
Janelas-JFrame• AclasseJFramerepresentaumajanelaSwing
– Seuconstrutorpodereceberumastringcomo\tulodajanela
– Todajanelapossuiumpainelinvisível(ContentPane)– Oscomponentesdajanelasãoinseridosnestepainel– Ajanelapodeconterumabarrademenu
Leonardo Murta Interface Gráfica Swing 8
JFrame frame = new JFrame(“Alo, Mundo”); frame.getContentPane().add (new JButton (“Teste”));
PainéisIntermediários-JPanel• AclasseJPanelrepresentaumpainelsimples
– JPaneléocontainerintermediáriomaissimples– Opainelpodeserinseridoemumajanelaououtropainel
– Ométodoadd()insereopainelnajanela
Leonardo Murta Interface Gráfica Swing 9
JFrame frame; JPanel painel; frame = new JFrame(“Alo, Mundo”); painel = new JPanel (); frame.getContentPane().add (painel);
OutrosPainéisIntermediários• Swingpossuioutrospainéisintermediários:
Leonardo Murta Interface Gráfica Swing 10
JScrollPane JSplitPane JTabbedPane
JToolBar
Componentes• OscomponentesSwingherdamdaclasseJComponent
• Estaclasseoferecerecursosparaodesenvolvedordeaplicaçõescominterfacegráfica– Textosdeajuda– Bordas– Tratamentodeeventos– Outrosmétodosdesuporte
Leonardo Murta Interface Gráfica Swing 11
TextodeAjuda• OscomponentesSwingsuportamtextosdeajuda
– OmétodosetToolTipText()indicaotextodeajudadeumcomponente
– EstemétodorecebeumaStringcomotextodeajudacomoumparâmetro
– Otextodeajudaéapresentadoquandoousuárioparaocursordomousesobreocomponente
Leonardo Murta Interface Gráfica Swing 12
MétodosdeSuporte• Visualizaçãoeacessoaocomponente
– OmétodosetEnabled()recebeumbooleanoquepermitequeodesenvolvedorhabiliteouinabiliteumcomponente
– OmétodoisEnabled()determinaseumcomponenteestáhabilitadoouinabilitado,retornandoumbooleano
– OmétodosetVisible()recebeumbooleanoquepermitequeodesenvolvedorapresenteouescondaumcomponente
– OmétodoisVisible()determinaseumcomponenteestávisível,retornandoumbooleano
Leonardo Murta Interface Gráfica Swing 13
MétodosdeSuporte• Fonteecursordocomponente
– OmétodosetFont()alteraafontedecaracteresdeumcomponenteparaafonterecebidacomoparâmetro
– OmétodogetFont()retornaafontedecaracteressendouNlizadaporumcomponente
– OmétodosetCursor()alteraocursordemouseuNlizadoporumcomponenteparaocursorrecebidocomoparâmetro
– OmétodogetCursor()retornaocursordemousesendouNlizadoporumcomponente
Leonardo Murta Interface Gráfica Swing 14
MétodosdeSuporte• Tamanhoeposiçãodocomponente:
– OmétodogetWidth()retornaalarguradocomponenteemnúmerodepontos
– OmétodogetHeight()retornaaalturadocomponenteemnúmerodepontos
– OmétodogetSize()retornaasdimensõesdocomponenteemumobjetodaclasseDimension
– OmétodogetBounds()retornaaáreaocupadaporumcomponenteemumobjetodaclasseRectangle
Leonardo Murta Interface Gráfica Swing 15
Componentes-Exemplo• Exemplodetrechodecódigo:
Leonardo Murta Interface Gráfica Swing 16
JButton botao = new JButton (); botao.setToolTipText (“Texto de ajuda do botão”); botao.setEnabled (true); boolean visivel = botao.isVisible();
Botões• SwingpossuidiversosNposdebotões
– JBuZon:botãosimples
– JCheckBox:caixadeseleção– JRadioBuZon:caixadeseleçãocommúlNplasopções
• OsbotõespossuemversõesuNlizadasemmenus– JMenuItem:itemdemenu
– JCheckBoxMenuItem:caixadeseleçãoparamenus
– JRadioBuZonMenuItem:caixadeseleçãomúlNplaparamenus
Leonardo Murta Interface Gráfica Swing 17
Botões• CaracterísNcasdosbotõesSwing
– Apresentamtextoeimagens– PodempossuirummnemônicouNlizadocomohotkey– Controlamoposicionamentodo\tulodobotão
Leonardo Murta Interface Gráfica Swing 18
ImageIcon icone = new ImageIcon("images/right.gif"); JButton b1 = new JButton (“Teste”, icone); b1.setVerticalTextPosition (AbstractButton.CENTER); b1.setHorizontalTextPosition (AbstractButton.LEFT); b1.setMnemonic(KeyEvent.VK_D);
CaixasdeSeleção-JCheckBox• PossuemascaracterísNcasdeumbotãogenérico
– OmétodogetSelected()determinaseocheckboxfoiselecionadopelousuário
– OmétodosetSelected()selecionaoudeselecionaocheckbox,deacordocomseuparâmetrobooleano
Leonardo Murta Interface Gráfica Swing 19
CaixasdeSeleção-JRadioBuZon• RadiobuZonssãocriadosemgrupos
– Somenteumbotãodeumgrupopodeestarselecionadoemumdeterminadoinstante
– AclasseBuFonGrouppermiteacriaçãodegruposdebotões
Leonardo Murta Interface Gráfica Swing 20
CaixasdeSeleção-JRadioBuZon• Exemplodetrechodecódigo:
Leonardo Murta Interface Gráfica Swing 21
JRadioButton birdButton = new JRadioButton(“Bird”); JRadioButton catButton = new JRadioButton(“Cat”); JRadioButton dogButton = new JRadioButton(“Dog”); ButtonGroup group = new ButtonGroup(); group.add(birdButton); group.add(catButton); group.add(dogButton); birdButton.setSelected(true);
ComboBoxes• Comboboxespermitemaseleçãodeumitemdeumalista,ocupandoumespaçodelimitadodajanela– Apenasumitemestáselecionadoemcadainstante– AcomboboxpodeserinicializadacomumarrayoucomumconjuntodeStrings
Leonardo Murta Interface Gráfica Swing 22
ComboBoxes• Acessoaosdados
– OmétodosetSelectedIndex()alteraoitemselecionado,indicandooíndicedonovoitemnalistadeopções
– OmétodogetSelectedIndex()retornaoíndicedoitemselecionadonalistadeopções
Leonardo Murta Interface Gráfica Swing 23
String[] pets = { "Bird", "Cat", "Dog", "Rabbit", "Pig" }; JComboBox petList = new JComboBox (pets); petList.setSelectedIndex(4);
ComboBoxes• Comboboxespodemsereditáveis
– OmétodosetEditable()alteraomododeediçãodeumacomboboxdeacordocomseuparâmetrobooleano
– OmétodogetSelectedItem()retornaoitemselecionadonacomboboxouotextodigitadopelousuário
Leonardo Murta Interface Gráfica Swing 24
ComboBoxes• Modelos
– Umacomboboxpodeserinicializadacomummodelo– Omodelopermiteaatualizaçãodositensdacombo– Oprogramapodeinserireremoveritensduranteaexecução
– OmétodosetModel()alteraomodelodeumacombobox
• DefaultComboModel– OmodeloérepresentadopelainterfaceComboModel– AclasseDefaultComboModelimplementaainterface– Aclassepossuimétodosparainserçãoeremoçãodeitens
Leonardo Murta Interface Gráfica Swing 25
ComboBoxes• AlgunsmétodosdaDefaultComboModel
– OmétodoinsertItemAt()insereoitemrecebidocomoparâmetroemumadeterminadaposiçãodacombo
– OmétodoaddItem()insereumnovoitemaofimdacombo– OmétodoremoveAllItems()removetodosositensdacombo
– OmétodoremoveItem()removedacombooitemrecebidocomoparâmetro
– OmétodogetItemCount()retornaonúmerodeitensdacombo
Leonardo Murta Interface Gráfica Swing 26
ComboBoxes• Exemplodetrechodecódigo:
Leonardo Murta Interface Gráfica Swing 27
DefaultComboModel modelo = new DefaultComboModel (); modelo.addElement (”Item 1"); modelo.addElement ("Item 2"); modelo.addElement ("Item 3"); modelo.addElement ("Item 4"); JComboBox combo = new JComboBox (modelo); modelo.addElement (“Item 5”);
Listas• Listasapresentamdiversositensaomesmotempo
– Comonacombobox,alistapodeserinicializadacomumvetor,umalistadestringsouummodelo(DefaultListModel)
Leonardo Murta Interface Gráfica Swing 28
Listas• Listaspermitemdiversosmodosdeseleçãodeitens
– OmétodosetSelecNonMode()alteraomododeseleçãodositensdeumalista
• SINGLE_SELECTION• SINGLE_INTERVAL_SELECTION• MULTIPLE_INTERVAL_SELECTION
Leonardo Murta Interface Gráfica Swing 29
Listas• Listasdevemserinseridasempainéisderolamento
Leonardo Murta Interface Gráfica Swing 30
String[] pessoas = { “Eu”, “Você”, “Ele”, “Ela”}; JList lista = new JList (pessoas); lista.setSelectionMode (ListSelectionModel.SINGLE_SELECTION); JScrollPane scroll= new JScrollPane (lista); painel.add(scroll);
Linhas/ÁreasdeTexto• Permitemaediçãodetextos
– Oconstrutordalinhadeediçãoindicaseutamanhodesejado– Oconstrutornãolimitaotamanhodotextoeditado– OmétodosetText()alteraotextoemediçãonalinha– OmétodogetText()retornaotextoeditadopelousuário
Leonardo Murta Interface Gráfica Swing 31
Linhas/ÁreasdeTexto• Exemplodetrechodecódigo
Leonardo Murta Interface Gráfica Swing 32
JTextField linha = new JTextField (20); linha.setText (“Alo, Mundo !”); linha.selectAll (); JTextArea area = new JTextArea (5, 20); area.setText (“Testando 1, 2, 3”); JScrollPane scroll= new JScrollPane (area); painel.add(scroll);
Linha de texto simples
Área de texto com múltiplas linhas
Áreas de texto são inseridas em painéis
Linhas/ÁreasdeTexto• Métodosdesuporte
– OmétodosetEditable()indicasealinhadetextoéeditávelouread-only,deacordocomseuparâmetrobooleano
– OmétodoisEditable()determinasealinhadetextoéeditávelouread-only,retornandoumbooleano
– OmétodosetHorizontalAlignment()indicacomootextoéalinhadonalinhadeedição
• JTextField.LEFT• JTextField.CENTER• JTextField.RIGHT
Leonardo Murta Interface Gráfica Swing 33
Rótulos• Rótulospermitemaapresentaçãodetextoseimagens– OsmétodosgetText()esetText()permitemconsultarealterarotextodeumrótulo
– OsmétodosgetIcon()esetIcon()permitemconsultarealteraraimagemapresentadanorótulo
Leonardo Murta Interface Gráfica Swing 34
Rótulos• Exemplodetrechodecódigo:
Leonardo Murta Interface Gráfica Swing 35
ImageIcon icon = new ImageIcon (”boom.gif"); JLabel label1 = new JLabel ("Image and Text", icon, JLabel.CENTER); label1.setVerticalTextPosition (JLabel.BOTTOM); label1.setHorizontalTextPosition (JLabel.CENTER); painel.add (label1); label2 = new JLabel ("Text-Only Label"); painel.add (label2); label3 = new JLabel (icon); painel.add (label3);
Alinhamento do texto
OutrosComponentes• Swingofereceumasériedeoutroscomponentes
Leonardo Murta Interface Gráfica Swing 36
JSlider
JProgressBar JTree
JTable
JColorChooser
JFileChooser
MenusemBarra• Exemplodetrechodecódigo
Leonardo Murta Interface Gráfica Swing 38
JMenuBar menuBar = new JMenuBar(); frame.setJMenuBar(menuBar); JMenu menu = new JMenu ("Menu"); menuBar.add (menu); JMenuItem menuItem = new JMenuItem (”Item de Menu", KeyEvent.VK_T); menu.add(menuItem);
ItensdeMenu• Podemserinicializadosdediversasformas
Leonardo Murta Interface Gráfica Swing 39
menu.add(new JMenuItem (titulo, letra_chave)); menu.add(new JMenuItem (titulo, icone)); menu.add(new JMenuItem (icone)); menu.addSeparator ();
ItensdeMenu-RadioBuZons
Leonardo Murta Interface Gráfica Swing 40
ButtonGroup group = new ButtonGroup(); rbMenuItem = new JRadioButtonMenuItem("A Radio button menu item"); rbMenuItem.setSelected(true); menu.add (rbMenuItem); group.add (rbMenuItem); rbMenuItem = new JRadioButtonMenuItem ("Another One"); menu.add(rbMenuItem); group.add(rbMenuItem);
ItensdeMenu-CheckBoxes
Leonardo Murta Interface Gráfica Swing 41
cbMenuItem = new JCheckBoxMenuItem ("A check box menu item"); cbMenuItem.setMnemonic (KeyEvent.VK_C); menu.add (cbMenuItem); cbMenuItem = new JCheckBoxMenuItem ("Another one"); cbMenuItem.setMnemonic (KeyEvent.VK_H); menu.add (cbMenuItem);
ItensdeMenu-Submenus
Leonardo Murta Interface Gráfica Swing 42
submenu = new JMenu ("A submenu"); menu.add (submenu); menuItem = new JMenuItem ("An item in the submenu"); submenu.add (menuItem); menuItem = new JMenuItem ("Another item"); submenu.add (menuItem);
PosicionamentodeComponentes• Aindependênciadeplataformageraalgunsproblemas
– AlgunscontrolesocupamáreasdeteladiferentesemplataformasdisNntas
– Exemplo:umalinhadeediçãodetextoocupaumaáreadetelamenornoWindowsquenoX-Windows
– Problema:comoposicionaroscontrolesnajanelalevandoemcontaotamanhodiferenteemcadaplataforma?
Leonardo Murta Interface Gráfica Swing 44
LayoutManagers• Solução:controladoresdeposicionamento
– Cadacontainerindicaseucontroladordeposicionamento– Oscontrolessãoinseridosnocontainersemposição– Ocontroladordeposicionamentoajustaaposiçãoetamanhodoscontroles,deacordocomascaracterísNcasdaplataforma
Leonardo Murta Interface Gráfica Swing 45
LayoutManagers• Ocontroledeposicionamentodeterminaotamanhoeaposiçãodoscomponentesdeumpainel– Todososcontainerspossuemumlayoutmanager– Olayoutmanageréumobjetoresponsávelporposicionaredeterminarotamanhodoscomponentesdocontainer
– Oscomponentespodemindicarseustamanhoseposiçõesdesejadas,masolayoutmanagerdecidesobresuasdimensõesfinaisemcadacontainer
Leonardo Murta Interface Gráfica Swing 46
LayoutManagers• SemprequeodesenvolvedoruNlizarométodoadd()deumcontainer,olayoutmanagerdeveserconsiderado– Algunslayoutmanagersexigemaespecificaçãodeumsegundoparâmetronométodoadd()
– Osegundoparâmetrotrazinformaçõessobreaposiçãodocomponenteinserido
– Porexemplo,olayoutmanagerBorderLayoutexigequeodesenvolvedorespecifiqueaposiçãorelaNvadeseuscomponentes.
Leonardo Murta Interface Gráfica Swing 47
Indicandoolayoutmanagerdeumpainel
• OmétodosetLayout()deumpainelpermitealterarseulayoutmanager,queépassadocomoparâmetro
Leonardo Murta Interface Gráfica Swing 48
JPanel painel = new JPanel();
painel.setLayout (new BorderLayout ());
Tamanhodesejadopeloscomponentes
• Umcomponentepodeindicarsuasdimensõesparaseuslayoutmanagers– OmétodosetMinimumSize()indicaotamanhomínimodocomponente
– OmétodosetMaximumSize()indicaotamanhomáximodocomponente
– OmétodosetPreferredSize()indicaotamanhodesejadopelocomponente
– Odesenvolvedorpodechamarestesmétodosapóscriarseuscomponentes
Leonardo Murta Interface Gráfica Swing 49
LayoutManagers-FlowLayout• Componentessãoorganizadosemlinhas
– Cadacomponenteocupaoseutamanhodesejado– Seoespaçohorizontalnãoforsuficienteparatodososcomponentes,olayoutmanageruNlizadiversaslinhas
– Dentrodeumalinha,odesenvolvedorpodeespecificaroalinhamentodoscomponentes
Leonardo Murta Interface Gráfica Swing 50
LayoutManager-FlowLayout• Exemplodetrechodecódigo:
Leonardo Murta Interface Gráfica Swing 51
Container painel = frame.getContentPane(); painel.setLayout (new FlowLayout ()); painel.add (new JButton ("Button 1")); painel.add (new JButton ("Button 2")); painel.add (new JButton ("Button 3"));
LayoutManagers-BorderLayout• Componentessãoorganizadosnasbordasdocontainer– Quandoumcomponenteéinserido,ométodoadd()deverecebersuaposiçãorelaNvanocontainer
Leonardo Murta Interface Gráfica Swing 52
LayoutManager-BorderLayout• Exemplodetrechodecódigo
Leonardo Murta Interface Gráfica Swing 53
Container painel = frame.getContentPane(); painel.setLayout (new BorderLayout ()); painel.add (new JButton ("Button 1"), BorderLayout.NORTH); painel.add (new JButton ("Button 2"), BorderLayout.CENTER); painel.add (new JButton ("Button 3"), BorderLayout.WEST); painel.add (new JButton ("Button 4"), BorderLayout.SOUTH); painel.add (new JButton ("Button 5"), BorderLayout.EAST);
LayoutManagers-GridLayout• Componentessãoorganizadosemumagrade
– Cadacomponenteocupaumacéluladagrade– Todasascélulaspossuemomesmotamanho– Otamanhodascélulasédeterminadopeloespaçoocupadopelocontainer
Leonardo Murta Interface Gráfica Swing 54
LayoutManager-GridLayout• Exemplodetrechodecódigo:
Leonardo Murta Interface Gráfica Swing 55
Container painel = frame.getContentPane(); painel.setLayout(new GridLayout(0,2)); painel.add(new JButton("Button 1")); painel.add(new JButton(”Button 2")); painel.add(new JButton("Button 3"));
2 colunas e quantas linhas forem necessárias
Comooposicionamentoérealizado?
• Depoisdeinseriroscomponentesdeumajanela,odesenvolvedordevechamarométodopack() – Olayoutmanagercalculaotamanhodesejadodajanela,somandootamanhodesuasbordasaotamanhopreferidodoscomponentesinseridosdiretamentenajanela.
Leonardo Murta Interface Gráfica Swing 56
Bordas• OmétodosetBorder()indicaabordadocomponente– SwingdefineumafábricaquedeveseruNlizadaparacriarasbordasdoscomponentes
Leonardo Murta Interface Gráfica Swing 58
JPanel panel = new JPanel(); panel.setBorder(BorderFactory.createLineBorder (Color.black));
BordasSimples
Leonardo Murta Interface Gráfica Swing 59
➤ Representam os tipos mais simples de bordas
BordasSimples• ExemplodecriaçãodasbordasaparNrdafábrica
Leonardo Murta Interface Gráfica Swing 60
comp1.setBorder (BorderFactory.createLineBorder(Color.black);
comp2.setBorder (BorderFactory.createRaisedBevelBorder());
comp3.setBorder (BorderFactory.createEtchedBorder());
comp4.setBorder (BorderFactory.createLoweredBevelBorder());
comp5.setBorder (BorderFactory.createEmptyBorder());
BordascomTítulos
Leonardo Murta Interface Gráfica Swing 61
➤ Bordas com título são bordas simples que apresentam títulos. Se nenhuma borda for especificada junto ao título, o look & feel utiliza uma borda default.
BordascomTítulos• Exemplodecriaçãodebordasde\tulo
Leonardo Murta Interface Gráfica Swing 62
comp9.setBorder (BorderFactory.createTitledBorder(“teste"));
... Border linha = BorderFactory.createLineBorder (Color.black); TitledBorder titulo = BorderFactory.createTitledBorder (linha, ”teste"); titulo.setTitleJustification (TitledBorder.CENTER); titulo.setTitlePosition (TitledBorder. BOTTOM); comp10.setBorder (titulo);
Eventos• Controlesgerameventos
– Umeventoindicaaocorrênciadeumaatuaçãodousuáriosobreocontroleoualgumamudançainternaqueoafete
– Exemplos:cliquedeumbotão,movimentodomouse,alteraçãodoconteúdodeumalinhadeedição,...
• Respostaaeventos– Odesenvolvedordeveprogramarsuaaplicaçãopararesponderaoseventosgeradossobreseuscomponentes
– QualquerobjetopoderesponderaeventosLeonardo Murta Interface Gráfica Swing 64
RespondendoaEventos• Umobjetopodeseregistrarpara“escutar”eventos
– Oobjetodeveimplementarumainterfaceespecífica– Oobjetodeveseregistrarnocomponente– Diversosobjetospodemserregistradosparaomesmoevento
– UmmesmoobjetopodetratardiversoseventosdisNntos
• Cadaeventoérepresentadoporumobjeto– Oobjetopossuiinformaçõessobreoevento– OobjetoidenNficaocomponentegeradordoevento
Leonardo Murta Interface Gráfica Swing 65
PrincipaisEventosesuasInterfacesAção do usuário
Clicar um botão
Pressionar Enter em uma linha de texto
Selecionar um item de menu
Fechar uma janela
Pressionar um botão do mouse
Mover o mouse
Componente sendo apresentado
Componente ganha o foco do teclado
Seleção de um item em uma lista
Interface
ActionListener
ActionListener
ActionListener
WindowListener
MouseListener
MouseMotionListener
ComponentListener
FocusListener
ListSelectionListener
Leonardo Murta Interface Gráfica Swing 66
TratamentodeEventos• Exemplodetrechodecódigo
Leonardo Murta Interface Gráfica Swing 67
... JButton botao = new JButton (“Botao Qualquer”); botao.addActionListener (new Tratador ()); ... class Tratador implements ActionListener {
public void actionPerformed (ActionEvent e) {
System.out.println(“Houve um clique no botao”); }
}
EventosdeAção• InterfaceAcNonListener
– Geradosporbotões,menuseEnteremlinhasdeedição
– RegistradaatravésdométodoaddAcNonListener()– Ainterfacepossuiumúnicométodo,acNonPerformed()
– OmétodorecebeumobjetodaclasseAcNonEvent
Leonardo Murta Interface Gráfica Swing 68
EventosdeTeclado• InterfaceKeyListener
– Eventodepressionamentoeliberaçãodeteclas– Eventossãogeradospelocomponentecomofoco– RegistradanocomponentepelométodoaddKeyListener
– Abaixo,sãoapresentadososmétodosdainterface
Leonardo Murta Interface Gráfica Swing 69
public void keyTyped (KeyEvent e);
public void keyPressed (KeyEvent e); public void keyReleased (KeyEvent e);
EventosdeTeclado• ClasseKeyEvent
– Informaçõesadicionaisdoseventosdeteclado– OmétodogetKeyChar()retornaocaracteredateclaassociadacomoevento
– OmétodogetKeyCode()retornaocódigo(Unicode)dateclaassociadacomoevento
– AclasseKeyEventdefinediversasconstantesdecódigoreferentesàsteclasassociadascomoevento
– AsconstantessãoiniciadasporVK(VK_A,VK_ESCAPE)Leonardo Murta Interface Gráfica Swing 70
EventosdeMouse• InterfaceMouseListener
– Eventosdecliqueeliberaçãodosbotõesdomouse– Eventosdeentradaesaídadomousedeumcomponente– RegistradanocomponenteatravésdeaddMouseListener()– Abaixo,sãoapresentadososmétodosdainterface
Leonardo Murta Interface Gráfica Swing 71
public void mousePressed (MouseEvent e); public void mouseReleased (MouseEvent e); public void mouseEntered (MouseEvent e); public void mouseExited (MouseEvent e); public void mouseClicked (MouseEvent e);
EventosdeMouse• ClasseMouseEvent
– Representaosdadoscomplementaresdoeventodemouse
– OmétodogetClickCount()retornaonúmerodecliquesconsecuNvosrealizadospelousuário
– OsmétodosgetX(),getY()egetPoint()retornamaposiçãodomouse,relaNvaaocomponenteafetadopeloevento
– OmétodogetComponent()retornaocomponenteafetadopeloevento
Leonardo Murta Interface Gráfica Swing 72
EventosdeMouse• InterfaceMouseMoNonListener
– Eventosdemovimentoearrastamentodomouse– RegistradaatravésdométodoaddMouseMoNonListener()
– Abaixo,sãoapresentadososmétodosdainterface– OsmétodosuNlizamobjetosdaclasseMouseEvent
Leonardo Murta Interface Gráfica Swing 73
public void mouseMoved (MouseEvent e); public void mouseDragged (MouseEvent e);
EventosdeSeleçãodeItem• InterfaceItemListener
– UNlizadoporcheckboxesecombosboxes– RegistradaatravésdométodoaddItemListener()– AinterfacepossuiométodoitemStateChanged()– OmétodorecebeumobjetodaclasseItemEvent– AclasseItemEventpossuidiversosmétodos
• getItem()queretornaoitemselecionadooudeselecionado
• getStateChange()determinaoNpodoevento,quepodeserItemEvent.SELECTEDouItemEvent.DESELECTED
Leonardo Murta Interface Gráfica Swing 74
EventosdeJanela• InterfaceWindowListener
– Eventosdeabertura,fechamento,aNvação,desaNvaçãominimizaçãoerestauraçãodejanelasoudiálogos
– RecebemumobjetodaclasseWindowEvent,quepossuiométodogetWindow(),queretornaajaneladoevento
Leonardo Murta Interface Gráfica Swing 75
void windowOpened (WindowEvent); void windowClosing (WindowEvent); void windowClosed (WindowEvent); void windowIconified (WindowEvent); void windowDeiconified (WindowEvent); void windowActivated (WindowEvent); void windowDeactivated (WindowEvent);
Exercício• Façaumaagendatelefônicaquepermitaadicionar,removereatualizarcontatosusandoosconceitosvistosemaula
Leonardo Murta Interface Gráfica Swing 76