A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008.

Apresentações semelhantes


Apresentação em tema: "1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008."— Transcrição da apresentação:

1 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

2 2 Interface Gráfica - JFC Swing

3 3 Pacote javax.swing Descrição Biblioteca de componentes de interface gráfica. Possui um conjunto maior de componentes do que o AWT. Seus componentes não dependem da plataforma de execução. As aplicações java podem ter a aparência de aplicações nativas (look and feel), a aparência default é chamada de Metal. Containers Componentes Caixas de Diálogo Menus Bordas

4 4 Diagrama de Classes Swing Component Container Window Frame JWindow Panel Applet Object JFrameJApplet JComponent JPanelJButtonJLabel AWT ComponentesSwing

5 5 Containers Swing (javax.swing)‏ JFrame JPanel JEditorPane JTabbedPane JOptionPane JFileChooser JColorChooser

6 6 JFrame (javax.swing.JFrame)‏ Construtores JFrame JFrame ( )‏ JFrame JFrame ( String titulo )‏ Principais Métodos getContentPane Container getContentPane ( )‏ Retorna a referência do painel de conteúdo. setDefaultCloseOperation void setDefaultCloseOperation ( int operação )‏ Define qual operação será realizada ao fechar a frame. setJMenuBar void setJMenuBar ( JMenuBar menu)‏ Define o menu da frame. setLayout void setLayout ( LayoutManager gerenciador)‏ Define o gerenciador de layout da frame. Para adicionar um componente: frame.getContentPane.add ( componente, pos )‏

7 7 JFrame (javax.swing.JFrame)‏ setDefaultCloseOperation void setDefaultCloseOperation ( int operação )‏ Define a operação que deve ser executada quando o usuário fecha a frame. O valor de operação pode ser um dos seguintes: DO_NOTHING_ON_CLOSE DO_NOTHING_ON_CLOSE (definido em WindowConstants): Não faz nada; o programa deve controlar o fechamento através do método windowClosing. HIDE_ON_CLOSE HIDE_ON_CLOSE (definido em WindowConstants): Automatica-mente esconde a frame. DISPOSE_ON_CLOSE DISPOSE_ON_CLOSE (definido em WindowConstants): Automati-camente esconde e elimina a frame. EXIT_ON_CLOSE EXIT_ON_CLOSE (definido em JFrame): Encerra a aplicação usando o método System exit. HIDE_ON_CLOSE. O valor default é HIDE_ON_CLOSE.

8 8 JFrame (javax.swing.JFrame)‏ import java.awt.*; import javax.swing.*; JFrame public class TamanhoFrame extends JFrame { public TamanhoFrame() { ToolkitgetDefaultToolkit() Toolkit tk = Toolkit.getDefaultToolkit(); DimensiongetScreenSize() Dimension d = tk.getScreenSize(); width int largura = d.width/2; height int altura = d.height/2; setBounds(largura/2, altura/2, largura, altura); ImagegetImage Image img = tk.getImage("fig.gif"); setIconImage setIconImage(img); setVisible(true); } public static void main(String[] args) { new TamanhoFrame(); }

9 9 Passos sugeridos para a criação de uma interface gráfica Importe os pacotes necessários. Declare a classe como sendo derivada de JFrame. Declare os componentes como atributos da classe. No construtor: Defina as características da frame. new Crie (instancie) os componentes com o operador new. Adicione os componentes aos painéis, caso necessário. Adicione os componentes e/ou painéis na frame. Redimensione e exiba a frame. Instancie a classe no método main( ).

10 10 JPanel (javax.swing.JPanel)‏ Principais Construtores JPanel JPanel ( )‏ JPanel JPanel ( LayoutManager gerenciador )‏ JPanel é um container, porém, também é subclasse de JComponent.

11 11 Componentes Swing JLabel JButton JToggleButton JTextField JTextArea JCheckbox ButtonGroup JRadioButton JList JComboBox

12 12 JComponent ( javax.swing.JComponent )‏ Construtor JComponent JComponent ( )‏ Principais Métodos getGraphics Graphics getGraphics ( )‏ Retorna o contexto gráfico do componente. paintComponent void paintComponent ( Graphics g )‏ Pinta o componente. Normalmente é sobreposto. setBorder void setBorder ( Border borda )‏ Define a borda do componente. setFont void setFont ( Fonte tipo )‏ Define a fonte do componente. setOpaque void setOpaque ( boolean flag )‏ Define se o componente é opaco ou transparente. setToolTipText void setToolTipText ( String dica )‏ Define o texto de ajuda do componente. setVisible void setVisible ( boolean flag )‏ Define se o componente está visível ou não.

13 13 JLabel ( javax.swing.JLabel )‏ Construtores JLabel JLabel ( )‏ JLabel JLabel ( Icon ícone )‏ JLabel JLabel ( Icon imagem, int alinhamento )‏ JLabel JLabel ( String texto )‏ JLabel JLabel ( String texto, Icon ícone, int alinhamento )‏ JLabel JLabel ( String texto, int alinhamento )‏

14 14 JLabel ( javax.swing.JLabel )‏ Principais Métodos getText String getText ( )‏ Retorna o texto do label. setHorizontalAlignment void setHorizontalAlignment ( int alinhamento )‏ Define o alinhamento horizontal. setHorizontalTextPosition void setHorizontalTextPosition ( int posição )‏ Define a posição do texto em relação à imagem. setIcon void setIcon ( Icon ícone )‏ Define uma imagem para o label setText void setText ( String texto )‏ Define o texto do label setVerticalAlignment void setVerticalAlignment ( int alinhamento )‏ Define o alinhamento vertical. setVerticalTextPosition void setVerticalTextPosition ( int posição )‏ Define a posição do texto em relação à imagem.

15 15 JButton ( javax.swing.JButton )‏ Construtores JButton JButton ( )‏ JButton JButton ( Icon ícone )‏ JButton JButton ( String texto)‏ JButton JButton ( String texto, Icon ícone)‏

16 16 JButton ( javax.swing.JButton )‏ Principais Métodos (AbstractButton)‏ addActionListener void addActionListener ( ActionListener l )‏ Adiciona um ouvinte de ação para o componente. getText String getText ( )‏ Retorna o texto do componente. setEnable void setEnable ( boolean estado )‏ Define se o componente está ativado. setHorizontalAlignment void setHorizontalAlignment ( int alinhamento )‏ Define o alinhamento horizontal do texto. setHorizontalPosition void setHorizontalPosition ( int posição )‏ Define a posição do texto em relação à imagem. setIcon void setIcon ( Icon ícone )‏ Define uma imagem para o componente.

17 17 JButton ( javax.swing.JButton )‏ setPressedIcon void setPressedIcon ( Icon ícone )‏ Define a imagem que será exibida quando o componente for pressionado. setRolloverEnabled void setRolloverEnabled ( boolean estado )‏ Define se o efeito rollover está ativado ou não. setRolloverIcon void setRolloverIcon ( Icon ícone )‏ Define a imagem que será exibida quando o mouse passar por cima do componente. setText void setText ( String texto )‏ Define o texto do componente. setVerticalAlignment void setVerticalAlignment ( int alinhamento )‏ Define o alinhamento vertical do texto. setVerticalPosition void setVerticalPosition ( int posição )‏ Define a posição do texto em relação à imagem.

18 18 JTextField ( javax.swing.JTextField )‏ Principais Construtores JTextField JTextField ( )‏ JTextField JTextField ( int colunas )‏ JTextField JTextField ( String texto )‏ JTextField JTextField ( String texto, int colunas )‏

19 19 JTextField ( javax.swing.JTextField )‏ Principais Métodos addActionListener void addActionListener ( ActionListener l )‏ Adiciona um ouvinte de ação para o componente. getSelectedText String getSelectedText ( )‏ Retorna o texto selecionado. getSelectionEnd int getSelectionEnd ( )‏ Retorna a posição final da seleção. getSelectionStart int getSelectionStart ( )‏ Retorna a posição inicial da seleção. getText String getText ( )‏ getText String getText ( int posição, int tamanho )‏ Retorna o texto do componente. isEditable bollean isEditable ( )‏ Informa se o componente pode ser editado.

20 20 JTextField ( javax.swing.JTextField )‏ replaceSelection void replaceSelection ( String texto )‏ Troca o texto selecionado. select void select ( int início, int final )‏ Seleciona uma parte do texto. selectAll void selectAll ( )‏ Seleciona todo o texto. setColumns void setColumns ( int colunas )‏ Define a quantidade de colunas do componente. setEditable void setEditable ( boolean b )‏ Define se o componente poderá ser editado. setFont void setFont ( Font f )‏ Define o tipo de fonte do componente. setHorizontalAlignment void setHorizontalAlignment ( int alinhamento )‏ Define o alinhamento horizontal do texto. setText void setText ( String texto )‏ Define o texto do componente.

21 21 Exemplo de Interface Gráfica import javax.swing.*; public class ExemploGUI extends JFrame { JButton btnNorte, btnSul, btnOeste, btnCentro, btnLeste; public ExemploGUI() { btnNorte = new JButton("Norte"); btnSul = new JButton("Sul"); btnOeste = new JButton("Oeste"); btnCentro = new JButton("Centro"); btnLeste = new JButton("Leste"); add(btnNorte, "North"); add(btnSul, "South"); add(btnOeste, "West"); add(btnCentro, "Center"); add(btnLeste, "East"); pack(); setVisible( true ); } public static void main(String args[]) { new ExemploGUI(); }

22 22 Exemplo de Componentes Swing import java.awt.*; javax.swing.*; import javax.swing.*; JFrame class BotaoFrame extends JFrame { JButton JButton btn; public BotaoFrame ( ) { setTitle ( " Oi Tudo Bem " ); setSize (300, 200); btn = new JButton ( " Botão Norte " ); btn.setIcon ( new ImageIcon ( " figura.gif " ) ); btn.setToolTipText ( " Ativa comando " ); btn.setMnemonic ( ‘B’ ); add add ( btn, " North " ); setVisible( true ); }

23 23 Gerenciadores de Layout Um container utiliza algo chamado Gerenciador de Layout para controlar o posicionamento e dimensionamento de seus componentes. Alguns desses gerenciadores são descritos a seguir: BorderLayout FlowLayout GridLayout GridBagLayout

24 24 BorderLayout (java.awt.BorderLayout)‏ North South Center WestEast

25 25 BorderLayout (java.awt.BorderLayout)‏ Construtores BorderLayout BorderLayout ( )‏ BorderLayout BorderLayout ( int hgap, int vgap )‏ Principais Campos CENTER  “Center” EAST  “East” NORTH  “North” SOUTH  “South” WEST  “West” Principais Métodos setHgap void setHgap ( int hgap )‏ Define o espaço horizontal entre as áreas. setVgap void setVgap ( int vgap )‏ Define o espaço vertical entre as áreas.

26 26 FlowLayout (java.awt.FlowLayout)‏

27 27 FlowLayout (java.awt.FlowLayout)‏ Construtores FlowLayout FlowLayout ( )‏ FlowLayout FlowLayout ( int alinhamento )‏ FlowLayout FlowLayout (int alinhamento, int hgap, int vgap )‏ Principais Campos (alinhamento)‏ CENTER LEFT RIGHT Principais Métodos setAlignment void setAlignment ( int alinhamento )‏ Define o alinhamento horizontal dos componentes. setHgap void setHgap ( int hgap )‏ Define o espaço horizontal entre os componentes. setVgap void setVgap ( int vgap )‏ Define o espaço vertical entre os componentes.

28 28 GridLayout (java.awt.GridLayout)‏

29 29 GridLayout (java.awt.GridLayout)‏ Construtores GridLayout GridLayout ( )‏ GridLayout GridLayout ( int rows, int cols )‏ GridLayout GridLayout (int rows,int cols, int hgap,int vgap )‏ Principais Métodos setColumns void setColumns ( int cols )‏ Define a quantidade de colunas da grade. setHgap void setHgap ( int hgap )‏ Define o espaço horizontal entre as células. setRows void setRows ( int rows )‏ Define a quantidade de linhas da grade. setVgap void setVgap ( int vgap )‏ Define o espaço vertical entre as células.

30 30 GridBagLayout (java.awt.GridBagLayout)‏

31 31 GridBagLayout (java.awt.GridBagLayout)‏ Construtor GridBagLayout GridBagLayout ( )‏ Utilização GridBagLayout GridBagLayout gbl = new GridBagLayout( ); painel.setLayout (gbl); GridBagConstraints GridBagConstraints gbc = new GridBagConstraints( ); peso gbc.weightx = 100; gbc.weighty = 100; // peso posição gbc.gridx = 0; gbc.gridy = 0; // posição tamanho gbc.gridwidth = 1; gbc.gridheight = 3; // tamanho painel.add ( componente, gbc );

32 32 GridBagConstraints (java.awt.GridBagConstraints)‏ Construtores GridBagConstraints GridBagConstraints ( )‏ GridBagConstraintsintintint intdouble doubleintintInsets int GridBagConstraints (int gridx, int gridy, int gridwidth, int gridheight, double weightx, double weighty, int anchor, int fill, Insets insets, int ipadx, int ipady )‏

33 33 GridBagConstraints (java.awt.GridBagConstraints)‏ Principais Campos fill gridx gridy gridheight gridwidth anchor weightx weighty insets ipadx ipady BOTH HORIZONTAL NONE NONE VERTICAL RELATIVE REMAINDER CENTER CENTER, EAST, NORTH, NORTHEAST, NORTHWEST, SOUTH, SOUTHEAST, SOUTHWEST, WEST

34 34 Exemplo de GridBagLayout import java.awt.*; import javax.swing.*; public class ExemploGBL extends JFrame { JButton btnNorte, btnEsq1, btnEsq2, btnEsq3, btnCentro; public ExemploGBL() { setLayout (new GridBagLayout( )); GridBagConstraints gbc = new GridBagConstraints( ); btnNorte = new JButton("Norte"); gbc.weightx = 30; gbc.weighty = 30; // peso gbc.gridx = 0; gbc.gridy = 0; // posição gbc.gridwidth = 3;gbc.gridheight = 1; // tamanho gbc.fill = GridBagConstraints.BOTH; // preenchimento add (btnNorte, gbc); btnEsq1 = new JButton("Esquerdo 1"); gbc.gridx = 0; gbc.gridy = 1; // posição gbc.gridwidth = 1; gbc.gridheight = 1; // tamanho add(btnEsq1, gbc);

35 35 Exemplo de GridBagLayout btnEsq2 = new JButton("Esquerdo 2"); gbc.gridx = 0; gbc.gridy = 2; // posição add(btnEsq2, gbc); btnEsq3 = new JButton("Esquerdo 3"); gbc.gridx = 0; gbc.gridy = 3; // posição add(btnEsq3, gbc); btnCentro = new JButton("Posição Central"); gbc.weightx = 100; gbc.weighty = 100; // peso gbc.gridx = 1; gbc.gridy = 1; // posição gbc.gridwidth = 2; gbc.gridheight = 3; // tamanho add(btnCentro, gbc); pack(); setBounds(100, 50, 300, 200); setVisible(true); } public static void main(String args[]) { new ExemploGBL(); }

36 36 Modificando o Layout dos containers Para alterar o gerenciador de layout de um container, você invoca o método setLayout( ) com uma instância do gerenciador de layout desejado. Normalmente a chamada deste método ocorre no construtor da classe.... setLayout( new FlowLayout( ) );... Quando utilizado o gerenciador de layout GridBagLayout, deve-se definir um constraints para cada componente.

37 37 Agrupando componentes em paineis Uma forma de se adicionar vários componentes em uma única área do layout é agrupando esses componentes em painéis, aí então adicionamos o painel na posição desejada. AnteriorPróximoSair

38 38 Agrupando componentes em paineis import javax.swing.*; public class Paineis extends JFrame { JButton btn1, btn2, btn3; JPanel p; public Paineis() { btn1 = new JButton("Botão 1"); btn2 = new JButton("Botão 2"); btn3 = new JButton("Botão 3"); p = new JPanel(); p.add(btn1); p.add(btn2); p.add(btn3); add(p, "South"); setBounds(100, 50, 200, 300); setVisible( true ); } public static void main(String args[]) { new Paineis(); }

39 39 Exercício proposto Crie a seguinte interface: AnteriorPróximoSair Agenda Pessoal Nome: Endereço: Telefone:

40 40 Exercício Programa de Cálculos Programa de Cálculos Número: Par / Ímpar Fatorial Primo Perfeito ___________Resultado:

41 41 Criação de um Painel com Título JPanel p = new JPanel ( new GridLayout(linhas, colunas) ); TitledBorder titulo = BorderFactory.createTitledBorder("Título"); p.setBorder(titulo); Outros métodos da classe BorderFactory para criação de bordas: createLineBorder ( )‏ Borda de linha simples createMatteBorder ( )‏ Borda larga preenchida com uma cor ou ícone repetido. createEmptyBorder ( )‏ Borda vazia createEtechedBorder ( )‏ Borda de linha com efeito 3D. createBevelBorder( )‏ createLoweredBevelBorder ( )‏ createRaisedBevelBorder ( )‏ Bordas com efeito de superfície em relevo.

42 42 JCheckBox ( javax.swing.JCheckBox )‏ Alguns Construtores JCheckBox JCheckBox ( )‏ JCheckBox JCheckBox ( String texto )‏ JCheckBox JCheckBox ( String texto, boolean estado )‏

43 43 JCheckBox ( javax.swing.JCheckBox )‏ Alguns Métodos isSelected boolean isSelected ( )‏ Retorna true se o componente estiver selecionado. setSelected void setSelected ( boolean estado )‏ Define o estado do componente. getText String getText ( )‏ Retorna o rótulo do componente. setText void setText ( String texo )‏ Define o rótulo do componente. setActionCommand void setActionCommand ( String texto)‏ Define o texto de ação de commando do componente. addAcitonListener void addAcitonListener ( ActionListener a )‏ addItemListener void addItemListener ( ItemListener i )‏

44 44 Exemplo com JCheckBox import javax.swing.*; import javax.swing.border.*; import java.awt.*; import java.awt.event.*; public class ExemploJCheckBox extends JFrame implements ActionListener { JCheckBox chkProgramacao, chkBancoDados, chkAnalise; JButton btn; public ExemploJCheckBox() { chkProgramacao = new JCheckBox("Programação"); chkBancoDados = new JCheckBox("Banco de Dados"); chkAnalise = new JCheckBox("Análise de Sistemas"); btn = new JButton("krikaki"); btn.addActionListener(this); JPanel p = new JPanel(new GridLayout(3,1)); TitledBorder titulo = BorderFactory.createTitledBorder("Assunto"); p.setBorder(titulo); p.add(chkProgramacao); p.add(chkBancoDados); p.add(chkAnalise); add(p, "Center"); add(btn, "South"); pack(); setVisible(true); }

45 45 Exemplo com JCheckBox public void actionPerformed(ActionEvent evt) { String resp = ""; boolean nada = true; if (chkProgramacao.isSelected()) { resp = chkProgramacao.getText(); nada = false; } if (chkBancoDados.isSelected()) { resp += "\n" + chkBancoDados.getText(); nada = false; } if (chkAnalise.isSelected()) { resp += "\n" + chkAnalise.getText(); nada = false; } if (nada) { JOptionPane.showMessageDialog(null, "Nenhum Assunto"); } else JOptionPane.showMessageDialog(null, resp); } public static void main(String[] args) { new ExemploJCheckBox(); }

46 46 JRadioButton ( javax.swing.JRadioButton )‏ Alguns Construtores JRadioButton JRadioButton ( )‏ JRadioButton JRadioButton ( String texto )‏ JRadioButton JRadioButton ( String texto, boolean estado )‏

47 47 RadioButton JRadioButton ( javax.swing.JRadioButton )‏ Alguns Métodos isSelected boolean isSelected ( )‏ Retorna true se o componente estiver selecionado. setSelected void setSelected ( boolean estado )‏ Define o estado do componente. getText String getText ( )‏ Retorna o rótulo do componente. setText void setText ( String texo )‏ Define o rótulo do componente. setActionCommand void setActionCommand ( String texto)‏ Define o texto de ação de commando do componente. addAcitonListener void addAcitonListener ( ActionListener a )‏ addItemListener void addItemListener ( ItemListener i )‏

48 48 ButtonGroup ButtonGroup ( javax.swing.ButtonGroup )‏ Utilizado para agrupar JRadioButton's Construtor ButtonGroup ( )‏ Alguns Métodos add void add ( AbstractButton b )‏ Adiciona um botão no grupo. clearSelection void clearSelection ( )‏ Limpa a seleção no grupo. getSelection.getActionCommand String getSelection.getActionCommand ( )‏ Retorna o texto de ação de comando do componente selecionado.

49 49 Exemplo com JRadioButton import javax.swing.*; import javax.swing.border.*; import java.awt.*; import java.awt.event.*; public class ExemploJRadioButton extends JFrame implements ActionListener { JRadioButton rbMasc, rbFem; JButton btn; ButtonGroup bgSexo; public ExemploJRadioButton() { rbMasc = new JRadioButton("Masc.", true); rbMasc.setActionCommand("Masculino"); rbFem = new JRadioButton("Fem."); rbFem.setActionCommand("Feminino"); bgSexo = new ButtonGroup(); bgSexo.add(rbMasc); bgSexo.add(rbFem); btn = new JButton("krikaki"); btn.addActionListener(this);

50 50 Exemplo com JRadioButton JPanel p = new JPanel(new GridLayout(3,1)); TitledBorder titulo = BorderFactory.createTitledBorder("Sexo"); p.setBorder(titulo); p.add(rbMasc); p.add(rbFem); add(p, "Center"); add(btn, "South"); pack(); setVisible(true); } public void actionPerformed(ActionEvent evt) { String resp = bgSexo.getSelection().getActionCommand(); JOptionPane.showMessageDialog(null, resp); } public static void main(String[] args) { new ExemploJRadioButton(); }

51 51 JList JList ( javax.swing.JList )‏ Alguns Construtores JList ( )‏ JList ( Object[] elementos )‏ JList ( ListModel modelo )‏ Alguns Métodos getSelectedIndex int getSelectedIndex ( )‏ retorna o índice do primeiro elemento selecionado. getSelectedIndices int [ ] getSelectedIndices ( )‏ retorna um array com os índices de todos os elementos selecionados. getSelectedValue Object getSelectedValue ( )‏ Retorna o primeiro elemento selecionado. getSelectedValues Object [ ] getSelectedValues ( )‏ Retorna um array com todos os elementos selecionados. clearSelection void clearSelection ( )‏ Limpa a seleção dos elementos. getModel ListModel getModel ( )‏ Retorna o modelo de dados da lista. setListData void setListData ( Object [ ] elementos )‏ Cria um ListModel através do array e o aplica à lista.

52 52 JList JList ( javax.swing.JList )‏ isSelectedIndex boolean isSelectedIndex ( int índice )‏ retorna true se o elemento estiver selecionado. isSelectionEmpty boolean isSelectionEmpty ( )‏ retorna true se não houver nenhum elemento selecionado. setVisibleRowCount void setVisibleRowCount (int qtd)‏ Define a quantidade de elementos exibidos. setSelectedIndex void setSelectedIndex ( int índice )‏ Seleciona um elemento. setSelectedIndices void setSelectedIndices ( int [] índices )‏ Seleciona todos os elementos indicados no array. setSelectionMode void setSelectionMode ( int modo)‏ Define o modo de seleção, modo pode ser: ListSelectionModel.SINGLE_SELECTION ListSelectionModel.SINGLE_INTERVAL_SELECTION ListSelectionModel.MULTIPLE_INTERVAL_SELECTION

53 53 DefaultListModel DefaultListModel (javax.swing.DefaultListModel)‏ Construtor DefaultListModel ( )‏ Alguns Métodos addElement void addElement ( Object elemento )‏ Adiciona um elemento ao final da lista. clear void clear ( )‏ Remove todos os elementos da lista. getElementAt Object getElementAt ( int índice )‏ Retorna o elemento especificado. getSize int getSize ( )‏ Retorna o número de elementos na lista. isEmpty boolean isEmpty ( )‏ Retorna true se a lista estiver vazia. remove Object remove ( int índice )‏ Remove um elemento de índice especificado.

54 54 Exemplo JList import javax.swing.*; import java.awt.event.*; public class ExemploJList extends JFrame implements ActionListener { JList lista; DefaultListModel modelo; JButton btn; public ExemploJList() { String dados[] = {"JavaSE", "JavaEE", "JavaME"}; modelo = new DefaultListModel(); for (String texto:dados) { modelo.addElement(texto); } // No lugar do for, você pode usar: // lista.setListData(dados); lista = new JList(modelo); lista.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); JScrollPane sp = new JScrollPane(lista); add(sp, "Center");

55 55 Exemplo JList btn = new JButton("krikaki"); btn.addActionListener(this); add(btn, "South"); pack(); setVisible(true); } public void actionPerformed(ActionEvent evt) { Object selecionados[] = lista.getSelectedValues(); for (Object texto:selecionados) { System.out.println(texto); } public static void main(String[] args) { new ExemploJList(); }

56 56 JComboBox JComboBox ( javax.swing.JComboBox )‏ Alguns Construtores JComboBox ( )‏ JComboBox ( Object[] elementos )‏ JComboBox ( ComboBoxModel modelo )‏ Alguns Métodos getSelectedIndex int getSelectedIndex ( )‏ Retorna o índice do primeiro elemento selecionado. getSelectedItem Object getSelectedItem ( )‏ Retorna o primeiro elemento selecionado. addItem void addItem ( Object elemento )‏ Adiciona um item na lista. removeAllItems void removeAllItems ( )‏ Remove todos os elementos da lista. setMaximumRowCount void setMaximumRowCount ( int qtdLinhas)‏ Define o número máximo de linhas a ser exibido. setSelectedIndex void setSelectedIndex ( int índice )‏ Seleciona um determinado elemento. getModel ComboBoxModel getModel ( )‏ Retorna o modelo da lista.

57 57 DefaultComboBoxModel DefaultComboBoxModel (javax.swing.DefaultComboBoxModel)‏ Alguns Construtores DefaultComboBoxModel ( )‏ DefaultComboBoxModel ( Object [] elementos)‏ Alguns Métodos addElement void addElement ( Object elemento )‏ Adiciona um elemento ao final da lista. getElementAt Object getElementAt ( int índice )‏ Retorna o elemento especificado. getSize int getSize ( )‏ Retorna o número de elementos na lista. removeAllElements void removeAllElements ( )‏ Remove todos os elementos da lista. removeElementAt Object removeElementAt ( int índice )‏ Remove um elemento de índice especificado.

58 58 Exemplo JComboBox import javax.swing.*; import java.awt.event.*; public class ExemploJComboBox extends JFrame implements ActionListener { JComboBox combo; JButton btn; public ExemploJComboBox() { String dados[] = {"JavaSE", "JavaEE", "JavaME"}; combo = new JComboBox(dados); combo.addItem("Todas"); combo.setSelectedIndex(3); combo.setMaximumRowCount(2); add(combo, "Center"); btn = new JButton("krikaki"); btn.addActionListener(this); add(btn, "South");

59 59 Exemplo JComboBox pack(); setVisible(true); } public void actionPerformed(ActionEvent evt) { Object selecionado = combo.getSelectedItem(); JOptionPane.showMessageDialog(null, selecionado); } public static void main(String[] args) { new ExemploJComboBox(); }

60 60 JTable JTable (javax.swing.JTable)‏ Alguns Construtores JTable ( )‏ JTable ( Object [] [] dados, Object [] nomeColunas )‏ JTable ( TableModel modelo )‏ Alguns Métodos getModel TableModel getModel ( )‏ Retorna o TableModel da tabela. getRowCount int getRowCount ( )‏ Retorna a quantidade de linhas no modelo da tabela. getSelectedColumn int getSelectedColumn ( )‏ Retorna o índice da coluna selecionada, -1 se nenhuma coluna estiver selecionada. getSelectedRow int getSelectedRow ( )‏ Retorna o índice da linha selecionada, -1 se nenhuma linha estiver selecionada. getSelectedRows int [ ] getSelectedRows ( )‏ Retorna um array contendo os índices de todas as linha selecionadas. getSelectedRowCount int getSelectedRowCount ( )‏ Retorna a quantidade de linhas selecionadas. getValueAt Object getValueAt (int linha, int coluna )‏ Retorna o valor de uma célula. setValueAt void setValueAt ( Object valor, int linha, int coluna )‏ Define o valor de uma célula.

61 61 DefaultTableModel DefaultTableModel (javax.swing.table.DefaultTableModel)‏ Alguns Construtores DefaultTableModel ( )‏ DefaultTableModel ( int linhas, int colunas )‏ DefaultTableModel ( Object [] [] dados, Object [] nomeColunas )‏ Alguns Métodos addRow void addRow ( Object [] linha )‏ Adiciona uma linha no final do modelo da tabela. getColumnCount int getColumnCount ( )‏ Retorna a quantidade de colunas do modelo da tabela. getRowCount int getRowCount ( )‏ Retorna a quantidade de linhas do modelo da tabela. getValueAt Object getValueAt (int linha, int coluna )‏ Retorna o valor de uma célula. insertRow void insertRow ( int índice, Object [] linha )‏ Insere uma linha no modelo da tabela. removeRow void removeRow ( int índice )‏ Remove uma linha no modelo da tabela. setValueAt void setValueAt ( Object valor, int linha, int coluna )‏ Define o valor de uma célula.

62 62 Exemplo JTable import javax.swing.*; import javax.swing.table.*; import java.awt.event.*; public class ExemploJTable extends JFrame implements ActionListener { JTable tabela; DefaultTableModel modelo; JButton btn; public ExemploJTable() { String colunas[] = {"Nome", "Endereço", "Telefone"}; String dados[][] = { {"João", "Rua Tal", "4444"}, {"Maria", "Av Tal", "3333"} }; modelo = new DefaultTableModel(dados, colunas); tabela = new JTable(modelo); JScrollPane sp = new JScrollPane(tabela); add(sp, "Center"); btn = new JButton("krikaki"); btn.addActionListener(this); add(btn, "South"); pack(); setVisible(true); }

63 63 Exemplo JTable public void actionPerformed(ActionEvent evt) { int linha = tabela.getSelectedRow(); int coluna = tabela.getSelectedColumn(); if (linha != -1 && coluna != -1) { String dado = (String) tabela.getValueAt(linha, coluna); JOptionPane.showMessageDialog(this, dado); } else { JOptionPane.showMessageDialog(this, " Nenhuma célula selecionada "); } public static void main(String[] args) { new ExemploJTable(); }

64 64 Exemplo JTable usando um ResultSet import java.sql.*; import javax.swing.*; public class ExemploDBGrid extends JFrame { JTable tabela; DBGridModel modelo; Connection con; ResultSet rs; public ExemploDBGrid( ) { try { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://liabc:3306/as03b3"; con = DriverManager.getConnection(url, "as03b3", "uniban"); Statement st = con.createStatement(ResultSet. TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); rs = st.executeQuery("Select * from Cliente order by Nome"); } catch (Exception ex) { ex.printStackTrace( ); } Classe Principal onde a tabela é criada

65 65 Exemplo JTable usando um ResultSet modelo = new DBGridModel(rs); tabela = new JTable(modelo); JScrollPane sp = new JScrollPane(tabela); add(sp, "Center"); pack(); setVisible(true); } public static void main(String[] args) { new ExemploDBGrid(); }

66 66 Exemplo JTable usando um ResultSet import javax.swing.table.*; import java.sql.*; public class DBGridModel extends AbstractTableModel { private ResultSet rs; private ResultSetMetaData estrutura; public DBGridModel(ResultSet rs) { this.rs = rs; try { estrutura = rs.getMetaData(); rs.first(); } catch (SQLException e) { e.printStackTrace(); } public int getColumnCount() { int qtdColunas = 0; try { qtdColunas = estrutura.getColumnCount(); } catch (SQLException e) { e.printStackTrace(); } return qtdColunas; } Classe que Implementa os métodos obrigatórios de AbstractTableModel

67 67 Exemplo JTable usando um ResultSet public int getRowCount() { int qtdLinhas = 0; int linhaCorrente = 0; try { linhaCorrente = rs.getRow(); rs.last(); qtdLinhas = rs.getRow(); rs.absolute(linhaCorrente); } catch (SQLException e) { e.printStackTrace(); } return qtdLinhas; } public Object getValueAt(int linha, int coluna) { Object valor = null; try { rs.absolute(linha + 1); valor = rs.getObject(coluna + 1); } catch (SQLException e) { e.printStackTrace(); } return valor; }

68 68 Exemplo JTable ResultSet Atualizável import java.sql.*; import javax.swing.*; import java.awt.event.*; public class ExemploDBGridRW extends JFrame implements ActionListener { JTable tabela; DBGridModelRW modelo; Connection con; ResultSet rs; JButton btnIncluir, btnExcluir; public ExemploDBGridRW() { try { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/uniban"; con = DriverManager.getConnection(url, "root", "admin"); Statement st = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); rs = st.executeQuery("Select * from Cliente"); } catch (Exception ex) { ex.printStackTrace(); } Classe Principal onde a tabela é criada

69 69 Exemplo JTable ResultSet Atualizável modelo = new DBGridModelRW(rs); tabela = new JTable(modelo); JScrollPane sp = new JScrollPane(tabela); add(sp, "Center"); btnIncluir = new JButton("Incluir"); btnIncluir.addActionListener(this); btnExcluir = new JButton("Excluir"); btnExcluir.addActionListener(this); JPanel pBtn = new JPanel(); pBtn.add(btnIncluir); pBtn.add(btnExcluir); add(pBtn, "South"); pack(); setVisible(true); }

70 70 Exemplo JTable ResultSet Atualizável public void actionPerformed(ActionEvent evt) { Object btn = evt.getSource(); if (btn == btnIncluir) { Object dados[] = new Object[5]; dados[0] = JOptionPane.showInputDialog("Qual o nome?"); dados[1] = JOptionPane.showInputDialog("Qual o sexo?"); dados[2] = JOptionPane.showInputDialog("Qual a data?"); dados[3] = JOptionPane.showInputDialog("Qual o estado?"); dados[4] = new Boolean(JOptionPane.showInputDialog("Está ativo?")); modelo.addRow(dados); } else if (btn == btnExcluir) { if (tabela.getSelectedRowCount() == 0) { JOptionPane.showMessageDialog(this, "Não há linhas selecionadas"); } else { int linhas[] = tabela.getSelectedRows(); for (int cont = linhas.length - 1; cont >= 0; cont--) { modelo.removeRow(linhas[cont]); } public static void main(String[] args) { new ExemploDBGridRW(); }

71 71 Exemplo JTable ResultSet Atualizável import javax.swing.table.*; import java.sql.*; public class DBGridModelRW extends AbstractTableModel { private ResultSet rs; private ResultSetMetaData estrutura; public DBGridModelRW(ResultSet rs) { this.rs = rs; try { estrutura = rs.getMetaData(); rs.first(); } catch (SQLException e) { e.printStackTrace(); } public int getColumnCount() { int qtdColunas = 0; try { qtdColunas = estrutura.getColumnCount(); } catch (SQLException e) { e.printStackTrace(); } return qtdColunas; } Classe que Implementa os métodos obrigatórios de AbstractTableModel

72 72 Exemplo JTable ResultSet Atualizável public int getRowCount() { int qtdLinhas = 0; int linhaCorrente = 1; try { linhaCorrente = rs.getRow(); rs.last(); qtdLinhas = rs.getRow(); if (linhaCorrente > 0) { rs.absolute(linhaCorrente); } } catch (SQLException e) { e.printStackTrace(); } return qtdLinhas; } public Object getValueAt(int linha, int coluna) { Object valor = null; try { rs.absolute(linha + 1); valor = rs.getObject(coluna + 1); } catch (SQLException e) { e.printStackTrace(); } return valor; }

73 73 Exemplo JTable ResultSet Atualizável public String getColumnName(int coluna) { String nomeColuna = ""; try { nomeColuna = estrutura.getColumnName(coluna + 1); } catch (SQLException e) { e.printStackTrace(); } return nomeColuna; } public void setValueAt(Object value, int linha, int coluna) { try { rs.absolute(linha + 1); rs.updateObject(coluna + 1, value); rs.updateRow(); } catch (SQLException e) { e.printStackTrace(); } public boolean isCellEditable(int linha, int coluna) { //Coluna Id não deve ser editável if (coluna == 0) { return false; } return true; }

74 74 Exemplo JTable ResultSet Atualizável public void addRow(Object[] linha) { try { rs.moveToInsertRow(); for (int cont = 0; cont < linha.length; cont++) { rs.updateObject(cont + 2, linha[cont]); } rs.insertRow(); //Atualiza a tabela fireTableDataChanged(); } catch (SQLException e) { e.printStackTrace(); } public void removeRow(int linha) { try { rs.absolute(linha + 1); rs.deleteRow(); //Atualiza a tabela fireTableRowsDeleted(linha, linha); } catch (SQLException e) { e.printStackTrace(); }

75 75 Cores, Desenhos e Fontes Color Graphics Font / FontMetrics

76 76 Color (java.awt.Color)‏ Principais Construtores Color Color ( float r, float g, float b )‏ Color Color ( float r, float g, float b, float a )‏ Color Color ( int r, int g, int b )‏ Color Color ( int r, int g, int b, int a )‏ Color Color ( int rgb )‏ Color Color ( int rgb, boolean hasalpha )‏ bits: 24-31=alpha; 16-23=red; 8-15=green; 0-7=blue Valores entre 0.0f e 1.0f Valores entre 0 e 255

77 77 Color (java.awt.Color)‏ Principais Campos yellow 255, 255, 0 white 255, 255, 255red 255, 0, 0 pink 255, 175, 175 orange 255, 200, 0 magenta 255, 0, 255 lightGray 192, 192, 192green 0, 255, 0 gray 128, 128, 128 darkGray 64, 64, 64 cyan 0, 255, 255blue 0, 0, 255 black 0, 0, 0

78 78 Color (java.awt.Color)‏ Principais Métodos brighter Color brighter ( )‏ Cria uma nova cor mais clara. darker Color darker ( )‏ Cria uma nova cor mais escura. getAlpha int getAlpha ( )‏ getBlue int getBlue ( )‏ getGreen int getGreen ( )‏ getRed int getRed ( )‏ getRGB int getRGB ( )‏ Retorna o valor do campo determinado. Não possui métodos set

79 79 Font (java.awt.Font)‏ Construtores Font Font ( Map atributos )‏ Font Font ( String nome, int estilo, int tamanho )‏ Principais Campos BOLD ITALIC PLAIN

80 80 Font (java.awt.Font)‏ Principais Métodos getFontName String getFontName ( )‏ Retorna o nome do font face. getName String getName ( )‏ Retorna o nome lógico da fonte. getSize int getSize ( )‏ Retorna o tamanho em pontos da fonte. getStyle int getStyle ( )‏ Retorna o estilo da fonte. isBold boolean isBold ( )‏ indica se o estilo da fonte é BOLD. isItalic boolean isItalic ( )‏ indica se o estilo da fonte é ITALIC. isPlain boolean isPlain ( )‏ indica se o estilo da fonte é PLAIN.

81 81 Font (java.awt.Font)‏ Nomes Lógicos de Fontes Nomes Lógicos de Fontes Dialog DialogInput Monospaced SansSerif Serif Exemplo de definição de Font de um componente: Font f1 = new Font ( “Serif”, Font.BOLD, 14 ); Button btn = new Button ( “Oi tudo bem”); btn.setFont ( f1 );

82 82 Font (java.awt.Font)‏ import java.awt.*; import javax.swing.*; public class FontComp extends JFrame { public FontComp( ) { setTitle("Tipo de Fonte do Componente"); Font f = new Font ( " SansSerif ", Font.BOLD+Font.ITALIC, 20); JButton btn = new JButton ( " krikaki " ); btn.setFont ( f ); getContentPane().add ( btn, " North " ); pack(); setVisible(true); } Exemplo que mostra como alterar a fonte de um componente

83 83 Font (java.awt.Font)‏ import java.awt.*; class Fontes extends Frame { public Fontes(){ setTitle("Tipos de Fontes"); List lst = new List(); lst.setBackground(Color.lightGray); GraphicsEnvironment. String fontfamily[] = GraphicsEnvironment. getLocalGraphicsEnvironment(). getLocalGraphicsEnvironment(). getAvailableFontFamilyNames(); getAvailableFontFamilyNames(); for (int x=0; x< fontfamily.length; x++) lst.add(fontfamily[x]); add(lst); pack(); setVisible(true); } Classe para obter as fontes instaladas no computador local

84 84 Alteração de Look And Feel import javax.swing.*; public class TestaGUI extends JFrame { public TestaGUI() { add(new JButton("Oi tudo bem"), "North"); pack(); setVisible(true); } public static void main(String[] args) throws Exception { UIManager.setLookAndFeel( "javax.swing.plaf.metal.MetalLookAndFeel"); // UIManager.getCrossPlatformLookAndFeelClassName()‏ //"com.sun.java.swing.plaf.motif.MotifLookAndFeel" //"javax.swing.plaf.metal.MetalLookAndFeel" //"com.sun.java.swing.plaf.gtk.GTKLookAndFeel" //"com.sun.java.swing.plaf.windows.WindowsLookAndFeel" new TestaGUI(); }

85 85 Manipulação de Eventos Eventos de Ação Eventos de Janela Eventos de Mouse

86 86 Eventos de Ação Interface ActionListener Método actionPerformed Não possui classe adaptadora Eventos gerados por: Button List MenuItem TextField

87 87 Eventos de Ação import java.awt.*; import java.awt.event.*; import javax.swing.*; public class AcaoBtn1 extends JFrame { JButton btn; public AcaoBtn1 ( ) { btn = new JButton ("Botão de Comando" ); addActionListener ActionListener btn.addActionListener ( new ActionListener( ) { actionPerformedActionEvent public void actionPerformed ( ActionEvent evt ) { btn.setBackground ( Color.red ); } } ); add ( btn, "North" ); setVisible( true ); } public static void main (String args[ ]) { new AcaoBtn1( ); } Ação de um Botão 1

88 88 Eventos de Ação import java.awt.*; import java.awt.event.*; import javax.swing.*; implements ActionListener public class AcaoBtn2 extends JFrame implements ActionListener { JButton btn; public AcaoBtn2 ( ) { btn = new JButton ("Botão de Comando" ); addActionListenerthis btn.addActionListener ( this ) ; add( btn, "North" ); setVisible ( true ); } ActionEvent public void actionPerformed ( ActionEvent evt ) { Objectevt.getSource Object source = evt.getSource( ); if ( source == btn )‏ btn.setBackground(Color.red); } public static void main (String args[ ]) { new AcaoBtn2( ); } Ação de um Botão 2

89 89 Exercício Implementar a funcionalidade do programa de cálculos.

90 90 Eventos de Janela Interface WindowListener Métodos windowClosing windowOpened windowIconified windowDeiconified windowClosed windowActivated windowDeactivated WindowAdapter Classe adaptadora: WindowAdapter

91 91 Eventos de Janela import java.awt.*; import java.awt.event.*; import javax.swing.*; public class FechaFrame extends JFrame { public FechaFrame ( ) { setTitle ( "Oi Tudo Bem" ); setSize (300, 200); setDefaultCloseOperationDO_NOTHING_ON_CLOSE setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); addWindowListenerWindowAdapter addWindowListener ( new WindowAdapter ( ) { windowClosingWindowEvent public void windowClosing ( WindowEvent e ) { int resp = JOptionPane.showConfirmDialog(null, "Deseja sair ?"); if ( resp == JOptionPane.YES_OPTION )‏ System.exit ( 0 ); } } ); setVisible ( true ); } public static void main ( String args [ ] ) { new FechaFrame( ); } Fechamento de Janela

92 92 Eventos de Janela import java.awt.event.*; import javax.swing.*; public class EventosJanela extends JFrame { public EventosJanela() { setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); addWindowListener(new WindowListener() { public void windowClosing (WindowEvent e) { int resp = JOptionPane.showConfirmDialog(null, "Deseja sair ?"); if (resp == JOptionPane.YES_OPTION)‏ System.exit(0); } public void windowOpened (WindowEvent arg0) { System.out.println("Janela Aberta!"); } public void windowClosed (WindowEvent arg0) { System.out.println("Janela Fechada!"); }

93 93 Eventos de Janela public void windowIconified (WindowEvent arg0) { System.out.println("Janela Minimizada!"); } public void windowDeiconified (WindowEvent arg0) { System.out.println("Janela Restaurada!"); } public void windowActivated (WindowEvent arg0) { System.out.println("Janela Ativada!"); } public void windowDeactivated (WindowEvent arg0) { System.out.println("Janela Desativada!"); } }); setVisible(true); } public static void main(String args[]) { new EventosJanela(); }

94 94 JColorChooser (javax.swing.JColorChooser)‏ import java.awt.*; import java.awt.event.*; import javax.swing.*; public class DialogoCor extends JFrame implements ActionListener { JButton btn; public DialogoCor() { btn = new JButton("krikaki"); btn.addActionListener(this); getContentPane().add(btn, "West"); pack(); setVisible(true); } public void actionPerformed(ActionEvent e) { corAtual Color corAtual = btn.getBackground(); novaCorshowDialog Color novaCor = JColorChooser.showDialog(DialogoCor.this, corAtual "Escolha a cor", corAtual); btn.setBackground(novaCor); } public static void main ( Stirng args [ ] ) { new DialogoCor ( ); }

95 95 Eventos de Mouse Interface MouseListener Métodos mousePressed mouseReleased mouseEntered mouseExited mouseClicked MouseAdapter Classe adaptadora: MouseAdapter Interface MouseMotionListener Métodos mouseDragged mouseMoved MouseMotionAdapter Classe adaptadora: MouseMotionAdapter

96 96 Eventos de Mouse import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Botao extends JFrame { JButton btn; public Botao ( ) { btn = new JButton ("Passe o mouse aqui !"); addMouseListenerMouseAdapter btn.addMouseListener ( new MouseAdapter ( ) { mouseEntered public void mouseEntered ( MouseEvent evt ) { btn.setBackground ( Color.yellow ); } mouseExited public void mouseExited ( MouseEvent evt ) { btn.setBackground ( Color.red ); } } ); add ( btn, "South" ); setVisible ( true ); } public static void main ( Stirng args [ ] ) { new Botao ( ); } Eventos de Mouse no Botão

97 97 Eventos de Teclado

98 98 Exemplo: Várias Janelas import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Janelas extends JFrame implements ActionListener { JFrame fr1, fr2; JButton btnFr1, btnFr2, btnVolta1, btnVolta2; public Janelas() { setTitle("Janela Principal"); btnFr1 = new JButton("Chama Janela 1"); btnFr1.addActionListener(this); btnFr2 = new JButton("Chama Janela 2"); btnFr2.addActionListener(this); add(btnFr1, "North"); add(btnFr2, "South");

99 99 Exemplo: Várias Janelas fr1 = new JFrame("Janela 1"); fr1.setBounds(100, 100, 300, 100); fr1.getContentPane().setBackground(Color.yellow); btnVolta1 = new JButton("Voltar"); fr1.add(btnVolta1, "South"); btnVolta1.addActionListener(this); fr2 = new JFrame("Janela 2"); fr2.setBounds(200, 200, 300, 100); fr2.getContentPane().setBackground(Color.green); btnVolta2 = new JButton("Voltar"); fr2.add(btnVolta2, "South"); btnVolta2.addActionListener(this); setSize(300, 200); setVisible(true); }

100 100 Exemplo: Várias Janelas public void actionPerformed(ActionEvent evt) { Object btn = evt.getSource(); if (btn == btnFr1) { setVisible(false); fr1.setVisible(true); } if (btn == btnFr2) { setVisible(false); fr2.setVisible(true); } if (btn == btnVolta1) { setVisible(true); fr1.setVisible(false); } if (btn == btnVolta2) { setVisible(true); fr2.setVisible(false); } public static void main(String[] args) { new Janelas(); }

101 101 Exemplo: Várias Janelas public void actionPerformed(ActionEvent evt) { Object btn = evt.getSource(); if (btn == btnFr1) { setVisible(false); fr1.setVisible(true); } if (btn == btnFr2) { setVisible(false); fr2.setVisible(true); } if (btn == btnVolta1) { setVisible(true); fr1.setVisible(false); } if (btn == btnVolta2) { setVisible(true); fr2.setVisible(false); } public static void main(String[] args) { new Janelas(); }

102 102 Exemplo: Botão Personalizado import java.awt.*; import java.awt.event.*; import javax.swing.*; public class PBotão extends JButton { String texto; Font letra; Color frente, fundo, realce; public PBotão(String texto, Font letra, Color frente, Color fundo, Color realce){ super(texto); this.texto = texto; this.letra = letra; this.frente = frente; this.fundo = fundo; this.realce = realce;

103 103 Exemplo: Botão Personalizado setFont(letra); setForeground(frente); setBackground(fundo); addMouseListener(new MouseAdapter() { public void mouseEntered(MouseEvent evt) { setBackground(PBotão.this.realce); Font letra = PBotão.this.letra; letra = new Font(letra.getFamily(), letra.getStyle(), letra.getSize() + 5); PBotão.this.setFont(letra); } public void mouseExited(MouseEvent evt) { setBackground(PBotão.this.fundo); PBotão.this.setFont(PBotão.this.letra); } }); }

104 104 Tipos de Cursor (java.awt.Cursor)‏ CROSSHAIR_CURSOR Cursor em formato de cruz. CUSTOM_CURSOR Cursor personalizado. DEFAULT_CURSOR Cursor default E_RESIZE Redimensionamento Leste HAND_CURSOR Cursor em formato de mão MOVE_CURSOR Cursor de movimentação N_RESIZE_CURSOR Redimensionamento Norte

105 105 Tipos de Cursor (java.awt.Cursor)‏ NE_RESIZE_CURSOR Redimensionamento Nordeste NW_RESIZE_CURSOR Redimensionamento Noroeste S_RESIZE_CURSOR Redimensionamento Sul SE_RESIZE_CURSOR Redimensionamento Sudeste SW_RESIZE_CURSOR Redimensionamento Sodoeste TEXT_CURSOR Texto W_RESIZE_CURSOR Redimensionamento Oeste WAIT_CURSOR Cursor de pausa

106 106 Exemplo de Tipos de Cursor import java.awt.*; import javax.swing.*; public class Cursores extends JFrame { public Cursores() { setLayout(new FlowLayout()); JButton btn1 = new JButton("Cruz"); JButton btn2 = new JButton("Mão"); JButton btn3 = new JButton("Movimento"); JButton btn4 = new JButton("Texto"); JButton btn5 = new JButton("Espera"); btn1.setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR)); btn2.setCursor(new Cursor(Cursor.HAND_CURSOR)); btn3.setCursor(new Cursor(Cursor.MOVE_CURSOR)); btn4.setCursor(new Cursor(Cursor.TEXT_CURSOR)); btn5.setCursor(new Cursor(Cursor.WAIT_CURSOR));

107 107 Exemplo de Tipos de Cursor cp.add(btn1); cp.add(btn2); cp.add(btn3); cp.add(btn4); cp.add(btn5); pack(); setVisible(true); } public static void main(String[] args) { new Cursores( ); }

108 108 Exemplo de Cursor Personalizado import java.awt.*; import javax.swing.*; public class CursorPessoal extends JFrame { JButton btn; public CursorPessoal() { Toolkit tk = Toolkit.getDefaultToolkit(); Image img = tk.getImage("imagem.gif"); setIconImage(img); Cursor cursor = tk.createCustomCursor(img, new Point(20, 20), "Oi"); btn = new JButton("krikaki"); btn.setToolTipText("Oi tudo bem"); btn.setCursor(cursor); add(btn, "North"); setBounds(100,100, 200, 300); setVisible(true); } public static void main(String[] args) { new CursorPessoal(); }


Carregar ppt "1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008."

Apresentações semelhantes


Anúncios Google