Programação Orientada a Objetos II Interfaces Gráficas Componentes Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com www.bolinhabolinha.com Ementa Introdução ao Desenvolvimento de Interfaces Gráficas Herança Múltipla Polimorfismo Classe Abstrata Interfaces Tratamento de Exceções Arquivos Comunicação com Banco de Dados Onde Estamos 1
Entrada e Saída Solicitando entrada de dados String nome = JOptionPane.showInputDialog("Entre com o nome"); Mostrando Mensagem JOptionPane.showMessageDialog(null,"Nome="+nome) Ou JOptionPane.showMessageDialog(null,"Nome="+nome, Título da janela",joptionpane.error_message); O último argumento pode ser: Algumas conversões úteis De String para tipos numéricos Antes de continuar... int varinteira = Integer.parseInt(variavel); float varfloat = Float.parseFloat(variavel); double vardouble = Double.parseDouble(variavel); Tipos numéricos para String String varstring = String.valueOf(varFloat); 2
2 conjuntos de componentes gráficos AWT Anterior ao swing Componentes se comportam conforme a plataforma Bugs em plataformas diferentes Swing Introduzido J2SE 1.2 Maior número de elementos Mas leve Aparência e comportamento configuráveis Mais robusto e portável Não substitui integralmente o AWT O extende Swing x AWT Alguns Componentes básicos JLabel Mostra texto não editável ou ícones JTextLabel Motrar textos, permitir que usuários entrem com dados JButton Disparar um evento quando clicado JCheckBox Mostrar opções selecionáveis JComboBox Mostra lista de opções (estilo drop-down) JList Mostra lista de opções Jpanel Fornece uma área na qual os componentes podem ser colocados e organizados. Também pode ser utilizado como área para desenho gráfico. Swing 3
Usando API Gráfica 3 tipos de janelas JFrame janela principal da sua aplicação JDialog janela secundária de aviso Applet utilizado dentro do browser Utilizando o JFrame JFrame Inserindo componentes exemplo um botão chamado btaperteme 4
Eventos Usando o Listener dos eventos Alterar a Aparência de sua aplicação try { UIManager.setLookAndFeel( LOOK_AND_FEEL_UTILIZADO ); } catch (Exception e) { } LOOK_AND_FELL pode ser Metal "javax.swing.plaf.metal.metallookandfeel System UIManager.getSystemLookAndFeelClassName() Motif "com.sun.java.swing.plaf.motif.motiflookandfeel GTK "com.sun.java.swing.plaf.gtk.gtklookandfeel" Look in Feel 5
Layout BorderLayout Cinco regiões (NORTH, SOUTH, EST, WEST, CENTER) FlowLayout Vai inserindo os componentes da esquerda para a direita GridLayout Tabela de componentes GridBagLayout Controle maior sobre as regiões null Posição absoluta JButton backgroud altera cor do fundo Obs: contentareafilled deve estar falso altera cor do texto Tipo de letra utilizado no botão icon Imagem colocada no botão Texto de ajuda quando passa o mouse sobre o botão enable habilita ou desabilita o botão label Texto escrito no botão mnemonic Atribui uma tecla que ira disparar a ação> Ex: b - JButton1 (alt + B dispara a ação) 6
JButton Úteis Colocando ícone Definindo a posição do ícone Podemos trocar a posição utilizando a SwingConstantes: TOP,LEFT,RIGHT,BOTTOM, CENTER JLabel background troca a cor do fundo OBS: A propriedade opaque deve estar selecionada altera cor do texto Tipo de letra utilizado no botão icon Imagem colocada no botão Texto de ajuda quando passa o mouse sobre o botão horizontalalignment alinhamento horizontal verticalalignment alinhamento vertical text texto escrito no label 7
Dicas Trocando o texto JLabel1.settext( novo texto ); Obtendo o texto JOptionPane.showMessageDialog(null,JLabel1.getText()); Colocando uma imagem por nome do arquivo jlabel3.seticon(new javax.swing.imageicon("e:\\imagens\\cafe.jpg")); Colocando uma imagem por URL try{ jlabel3.seticon(new javax.swing.imageicon(new URL("http://www.teste.com/imagem.gif"))); } catch (Exception e) { JOptionPane.showMessageDialog(null,e); } JLabel JTextField background troca a cor do fundo OBS: A propriedade opaque deve estar selecionada altera cor do texto Tipo de letra utilizado no botão Texto de ajuda quando passa o mouse sobre o botão horizontalalignment alinhamento horizontal verticalalignment alinhamento vertical text texto escrito no label 8
JTextField Dicas Trocando o texto jtextfield1.settext( novo texto ); Obtendo o texto String opcao = jtextfield1.gettext(); JTextArea background troca a cor do fundo OBS: A propriedade opaque deve estar selecionada altera cor do texto Tipo de letra utilizado no botão Texto de ajuda quando passa o mouse sobre o botão horizontalalignment alinhamento horizontal verticalalignment alinhamento vertical text texto escrito no label 9
JTextArea Dicas Trocando o texto jtextfield1.settext( novo texto ); Obtendo o texto String opcao = jtextfield1.gettext(); Adicionando um texto jtextarea1.append("texto"); Insere um texto na posição desejada jtextarea1.insert("texto,10); JCheckBox background troca a cor do fundo OBS: A propriedade opaque deve estar selecionada altera cor do texto Tipo de letra utilizado no botão Texto de ajuda quando passa o mouse sobre o botão horizontalalignment alinhamento horizontal verticalalignment alinhamento vertical label texto escrito no checkbox enable habilita ou desabilita o botão selected seleciona ou não o checkbox 10
JCheckBox Dicas Selecionando um checkbox jcheckbox1.setselected(true); Removendo a seleção jcheckbox1.setselected(false); Verificando se um checkbox está selecionado if(jcheckbox1.isselected()==true) JOptionPane.showMessageDialog(null,"Esta Selecionado"); else JOptionPane.showMessageDialog(null,"Não esta Selecionado"); JRadioButton background troca a cor do fundo OBS: A propriedade opaque deve estar selecionada altera cor do texto Tipo de letra utilizado no botão Texto de ajuda quando passa o mouse sobre o botão horizontalalignment alinhamento horizontal verticalalignment alinhamento vertical label texto escrito no radiobutton enable habilita ou desabilita o botão selected seleciona ou não o checkbox buttongroup define a que grupo de botões ele pertence 11
JRadioButton Dicas Selecionando um radiobutton jradiobutton1.setselected(true); Removendo a seleção jradiobutton1.setselected(false); Verificando se um checkbox está selecionado if(jradiobutton1.isselected()==true) JOptionPane.showMessageDialog(null,"Esta Selecionado"); else JOptionPane.showMessageDialog(null,"Não esta Selecionado"); Para agrupar os botões, utilize a propriedade ButtonGroup JComboBox altera cor do texto Tipo de letra utilizado no botão Texto de ajuda quando passa o mouse sobre o botão editable Se verdadeira autoriza o usuário a digitar no combobox maximumrowcount número de linhas que aparece quando clico no escolher do combobox model definir os itens do combobox 12
JComboBox Dicas Adiciona um item jcombobox1.additem( item 5"); Inserindo um item em uma posição determinada jcombobox1.insertitemat("item Inicial",0); Retorna o item de uma posição JOptionPane.showMessageDialog(null,jComboBox1.getItemAt(0)); Retorna o item selecionado JOptionPane.showMessageDialog(null,jComboBox1.getSelectedItem()); Para agrupar os botões, utilize a propriedade ButtonGroup JList background troca a cor do fundo altera cor do texto Tipo de letra utilizado no botão Texto de ajuda quando passa o mouse sobre o botão visiblerowcount número de linhas que aparece model definir os itens do list selectionmode SINGLE_SELECTION: seleção simples SINGLE_INTERVAL_SELECTION: seleção por intervalo único MULTIPLE_INTERVAL_SELECTION: seleção por intervalos 13
JList Dicas Adiciona Itens String vv[ ] = {"um","dois","tres","quatro"}; jlist1.setlistdata(vv); Verifica se existe algum item selecionado if (jlist1.isselectionempty()==true) JOptionPane.showMessageDialog(null,"Nenhuma Seleção"); Marcar um item como selecionado jlist1.setselectedindex(1); Retorna o índice do item selecionado JOptionPane.showMessageDialog(null,jList1.getSelectedIndex()); Retorna o item selecionado JOptionPane.showMessageDialog(null,jList1.getSelectedValue()); Retornar multiplos itens selecionados int vetlista[] = jlist1.getselectedindices(); for(int i=0; i<=vetlista.length;i++ ) JOptionPane.showMessageDialog(null,jList1.getModel().getElementAt(vetLista[i])); Bibliografia 1) SANTOS, Rafael. Introdução à Programação Orientada a Objetos usando : Java. 1ª ed. Rio de Janeiro: Elsevier, 2008. Complementar DEITEL, H. M. & DEITEL, P. J., LISBOA, C. A. L. Java, como programar. 6ª Ed. São Paulo: Pearson, 2006. 14