1 curso de linguagem java marcos mendes 1º semestre - 2008

Post on 07-Apr-2016

217 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Curso de Linguagem Java

Marcos Mendes

1º Semestre - 2008

2

Interface Gráfica - JFC Swing

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

Diagrama de Classes Swing

Component

Container

Window

FrameJWindow

Panel

Applet

Object

JFrame JApplet

JComponent

JPanel JButton JLabel

AWT

ComponentesComponentesSwingSwing

5

Containers Swing (javax.swing)

JFrame

JPanel

JEditorPane

JTabbedPane

JOptionPane

JFileChooser

JColorChooser

6

JFrame (javax.swing.JFrame) Construtores

JFrameJFrame ( ) JFrameJFrame ( String titulo )

Principais Métodos Container getContentPanegetContentPane ( )

Retorna a referência do painel de conteúdo. void setDefaultCloseOperationsetDefaultCloseOperation ( int operação )

Define qual operação será realizada ao fechar a frame.

void setJMenuBarsetJMenuBar ( JMenuBar menu)Define o menu da frame.

void setLayoutsetLayout ( LayoutManager gerenciador)Define o gerenciador de layout da frame.

Para adicionar um componente:frame.getContentPane.add ( componente, pos )

7

JFrame (javax.swing.JFrame) void setDefaultCloseOperationsetDefaultCloseOperation ( 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_CLOSEDO_NOTHING_ON_CLOSE (definido em WindowConstants): Não faz nada; o programa deve controlar o fechamento através do método windowClosing.

HIDE_ON_CLOSEHIDE_ON_CLOSE (definido em WindowConstants): Automatica-mente esconde a frame.

DISPOSE_ON_CLOSEDISPOSE_ON_CLOSE (definido em WindowConstants): Automati-camente esconde e elimina a frame.

EXIT_ON_CLOSEEXIT_ON_CLOSE (definido em JFrame): Encerra a aplicação usando o método System exit.

O valor default é HIDE_ON_CLOSEHIDE_ON_CLOSE..

8

JFrame (javax.swing.JFrame)import java.awt.*;import javax.swing.*;

public class TamanhoFrame extends JFrameJFrame {public TamanhoFrame() {

ToolkitToolkit tk = Toolkit.getDefaultToolkit()getDefaultToolkit();DimensionDimension d = tk.getScreenSize()getScreenSize();int largura = d.widthwidth/2;int altura = d.heightheight/2;setBounds(largura/2, altura/2, largura, altura);ImageImage img = tk.getImagegetImage("fig.gif");setIconImagesetIconImage(img);setVisible(true);

}

public static void main(String[] args) {new TamanhoFrame();

}}

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. Crie (instancie) os componentes com o

operador newnew. 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

JPanel (javax.swing.JPanel)

Principais Construtores JPanelJPanel ( ) JPanelJPanel ( LayoutManager

gerenciador )

JPanel é um container, porém, também é subclasse de JComponent.

11

Componentes Swing JLabel JButton JToggleButton JTextField JTextArea

JCheckbox ButtonGroup JRadioButton JList JComboBox

12

JComponent ( javax.swing.JComponent ) Construtor

JComponentJComponent ( ) Principais Métodos

Graphics getGraphicsgetGraphics ( )Retorna o contexto gráfico do componente.

void paintComponentpaintComponent ( Graphics g )Pinta o componente. Normalmente é sobreposto.

void setBordersetBorder ( Border borda )Define a borda do componente.

void setFontsetFont ( Fonte tipo )Define a fonte do componente.

void setOpaquesetOpaque ( boolean flag )Define se o componente é opaco ou transparente.

void setToolTipTextsetToolTipText ( String dica )Define o texto de ajuda do componente.

void setVisiblesetVisible ( boolean flag )Define se o componente está visível ou não.

13

JLabel ( javax.swing.JLabel ) Construtores

JLabelJLabel ( ) JLabelJLabel ( Icon ícone ) JLabelJLabel ( Icon imagem, int alinhamento ) JLabelJLabel ( String texto ) JLabelJLabel ( String texto, Icon ícone, int

alinhamento ) JLabelJLabel ( String texto, int alinhamento )

14

JLabel ( javax.swing.JLabel ) Principais Métodos

String getTextgetText ( )Retorna o texto do label.

void setHorizontalAlignmentsetHorizontalAlignment ( int alinhamento )Define o alinhamento horizontal.

void setHorizontalTextPositionsetHorizontalTextPosition ( int posição )Define a posição do texto em relação à imagem.

void setIconsetIcon ( Icon ícone )Define uma imagem para o label

void setTextsetText ( String texto )Define o texto do label

void setVerticalAlignmentsetVerticalAlignment ( int alinhamento )Define o alinhamento vertical.

void setVerticalTextPositionsetVerticalTextPosition ( int posição )Define a posição do texto em relação à imagem.

15

JButton ( javax.swing.JButton )

Construtores JButtonJButton ( ) JButtonJButton ( Icon ícone ) JButtonJButton ( String texto) JButtonJButton ( String texto, Icon ícone)

16

JButton ( javax.swing.JButton ) Principais Métodos (AbstractButton)

void addActionListeneraddActionListener ( ActionListener l )Adiciona um ouvinte de ação para o componente.

String getTextgetText ( )Retorna o texto do componente.

void setEnablesetEnable ( boolean estado )Define se o componente está ativado.

void setHorizontalAlignmentsetHorizontalAlignment ( int alinhamento )Define o alinhamento horizontal do texto.

void setHorizontalPositionsetHorizontalPosition ( int posição )Define a posição do texto em relação à imagem.

void setIconsetIcon ( Icon ícone )Define uma imagem para o componente.

17

JButton ( javax.swing.JButton ) void setPressedIconsetPressedIcon ( Icon ícone )

Define a imagem que será exibida quando o componente for pressionado.

void setRolloverEnabledsetRolloverEnabled ( boolean estado )Define se o efeito rollover está ativado ou não.

void setRolloverIconsetRolloverIcon ( Icon ícone )Define a imagem que será exibida quando o mouse passar por cima do componente.

void setTextsetText ( String texto )Define o texto do componente.

void setVerticalAlignmentsetVerticalAlignment ( int alinhamento )Define o alinhamento vertical do texto.

void setVerticalPositionsetVerticalPosition ( int posição )Define a posição do texto em relação à imagem.

18

JTextField ( javax.swing.JTextField )

Principais Construtores JTextFieldJTextField ( ) JTextFieldJTextField ( int colunas ) JTextFieldJTextField ( String texto ) JTextFieldJTextField ( String texto, int

colunas )

19

JTextField ( javax.swing.JTextField ) Principais Métodos

void addActionListeneraddActionListener ( ActionListener l )Adiciona um ouvinte de ação para o componente.

String getSelectedTextgetSelectedText ( )Retorna o texto selecionado.

int getSelectionEndgetSelectionEnd ( )Retorna a posição final da seleção.

int getSelectionStartgetSelectionStart ( )Retorna a posição inicial da seleção.

String getTextgetText ( ) String getTextgetText ( int posição, int tamanho )

Retorna o texto do componente. bollean isEditableisEditable ( )

Informa se o componente pode ser editado.

20

JTextField ( javax.swing.JTextField )

void replaceSelectionreplaceSelection ( String texto )Troca o texto selecionado.

void selectselect ( int início, int final )Seleciona uma parte do texto.

void selectAllselectAll ( )Seleciona todo o texto.

void setColumnssetColumns ( int colunas )Define a quantidade de colunas do componente.

void setEditablesetEditable ( boolean b ) Define se o componente poderá ser editado.

void setFontsetFont ( Font f )Define o tipo de fonte do componente.

void setHorizontalAlignmentsetHorizontalAlignment ( int alinhamento )Define o alinhamento horizontal do texto.

void setTextsetText ( String texto )Define o texto do componente.

21

Exemplo de Interface Gráficaimport 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

Exemplo de Componentes Swing

import java.awt.*;import javax.swing.*;javax.swing.*;

class BotaoFrame extends JFrameJFrame {JButtonJButton 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’ );addadd ( btn, "North" );setVisible( true );

}}

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

BorderLayout (java.awt.BorderLayout)

North

South

CenterWest East

25

BorderLayout (java.awt.BorderLayout) Construtores

BorderLayoutBorderLayout ( ) BorderLayoutBorderLayout ( int hgap, int vgap )

Principais Campos CENTER “Center” EAST “East” NORTH “North” SOUTH “South” WEST “West”

Principais Métodos void setHgapsetHgap ( int hgap )

Define o espaço horizontal entre as áreas. void setVgapsetVgap ( int vgap )

Define o espaço vertical entre as áreas.

26

FlowLayout (java.awt.FlowLayout)

27

FlowLayout (java.awt.FlowLayout) Construtores

FlowLayoutFlowLayout ( ) FlowLayoutFlowLayout ( int alinhamento ) FlowLayoutFlowLayout (int alinhamento, int hgap, int vgap )

Principais Campos (alinhamento) CENTER LEFT RIGHT

Principais Métodos void setAlignmentsetAlignment ( int alinhamento )

Define o alinhamento horizontal dos componentes. void setHgapsetHgap ( int hgap )

Define o espaço horizontal entre os componentes. void setVgapsetVgap ( int vgap )

Define o espaço vertical entre os componentes.

28

GridLayout (java.awt.GridLayout)

29

GridLayout (java.awt.GridLayout) Construtores

GridLayoutGridLayout ( ) GridLayoutGridLayout ( int rows, int cols ) GridLayoutGridLayout (int rows,int cols, int hgap,int vgap )

Principais Métodos void setColumnssetColumns ( int cols )

Define a quantidade de colunas da grade. void setHgapsetHgap ( int hgap )

Define o espaço horizontal entre as células. void setRowssetRows ( int rows )

Define a quantidade de linhas da grade. void setVgapsetVgap ( int vgap )

Define o espaço vertical entre as células.

30

GridBagLayout (java.awt.GridBagLayout)

31

GridBagLayout (java.awt.GridBagLayout) Construtor

GridBagLayoutGridBagLayout ( ) Utilização

GridBagLayoutGridBagLayout gbl = new GridBagLayout( );painel.setLayout (gbl);GridBagConstraintsGridBagConstraints gbc = new GridBagConstraints( );gbc.weightx = 100; gbc.weighty = 100; // pesopesogbc.gridx = 0; gbc.gridy = 0; // posiçãoposiçãogbc.gridwidth = 1; gbc.gridheight = 3; // tamanhotamanhopainel.add ( componente, gbc );

32

GridBagConstraints (java.awt.GridBagConstraints)

Construtores GridBagConstraintsGridBagConstraints ( ) GridBagConstraintsGridBagConstraints (intint gridx, intint gridy,

intint gridwidth, intint gridheight, doubledouble weightx, doubledouble weighty, intint anchor, intint fill, InsetsInsets insets, int ipadx, intint ipady )

33

GridBagConstraints (java.awt.GridBagConstraints)

Principais Campos fill gridx gridy gridheight gridwidth anchor weightx weighty insets ipadx ipady

BOTH HORIZONTAL NONENONE VERTICAL RELATIVE REMAINDER CENTERCENTER, EAST,

NORTH, NORTHEAST, NORTHWEST, SOUTH, SOUTHEAST, SOUTHWEST, WEST

34

Exemplo de GridBagLayoutimport java.awt.*;import javax.swing.*;

public class ExemploGBL extends JFrame {JButton btnNorte, btnEsq1, btnEsq2, btnEsq3, btnCentro;

public ExemploGBL() {setLayout (new GridBagLayout( ));setLayout (new GridBagLayout( ));GridBagConstraints gbc = new GridBagConstraints gbc = new

GridBagConstraints( );GridBagConstraints( );btnNorte = new JButton("Norte");btnNorte = new JButton("Norte");gbc.weightx = 30; gbc.weighty = 30; // pesogbc.gridx = 0; gbc.gridy = 0; // posiçãogbc.gridwidth = 3; gbc.gridheight = 1; // tamanhogbc.fill = GridBagConstraints.BOTH; // preenchimentoadd (btnNorte, gbc);btnEsq1 = new JButton("Esquerdo 1");btnEsq1 = new JButton("Esquerdo 1");gbc.gridx = 0; gbc.gridy = 1; // posiçãogbc.gridwidth = 1; gbc.gridheight = 1; // tamanhoadd(btnEsq1, gbc);

35

Exemplo de GridBagLayout

btnEsq2 = new JButton("Esquerdo 2");btnEsq2 = new JButton("Esquerdo 2");gbc.gridx = 0; gbc.gridy = 2; // posiçãoadd(btnEsq2, gbc);btnEsq3 = new JButton("Esquerdo 3");btnEsq3 = new JButton("Esquerdo 3");gbc.gridx = 0; gbc.gridy = 3; // posiçãoadd(btnEsq3, gbc);btnCentro = new JButton("Posição Central");btnCentro = new JButton("Posição Central");gbc.weightx = 100; gbc.weighty = 100; // pesogbc.gridx = 1; gbc.gridy = 1; // posiçãogbc.gridwidth = 2; gbc.gridheight = 3; // tamanhoadd(btnCentro, gbc);pack();setBounds(100, 50, 300, 200);setVisible(true);

}public static void main(String args[]) {

new ExemploGBL();}

}

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( ) );setLayout( new FlowLayout( ) );...

Quando utilizado o gerenciador de layout GridBagLayout, deve-se definir um constraints para cada componente.

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.

Anterior

Próximo Sair

38

Agrupando componentes em paineisimport 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

Exercício proposto Crie a seguinte interface:

Anterior

Próximo Sair

Agenda Pessoal

Nome:

Endereço:

Telefone:

40

Exercício Programa de Cálculos

Programa de CálculosNúmero:

Par / Ímpar Fatorial

Primo Perfeito

___________Resultado:

41

Criação de um Painel com TítuloCriação de um Painel com TítuloJPanel 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

JCheckBox ( javax.swing.JCheckBox )

Alguns Construtores JCheckBoxJCheckBox ( ) JCheckBoxJCheckBox ( String texto ) JCheckBoxJCheckBox ( String texto, boolean

estado )

43

JCheckBox ( javax.swing.JCheckBox ) Alguns Métodos

boolean isSelectedisSelected ( )Retorna true se o componente estiver selecionado.

void setSelectedsetSelected ( boolean estado )Define o estado do componente.

String getTextgetText ( )Retorna o rótulo do componente.

void setTextsetText ( String texo )Define o rótulo do componente.

void setActionCommandsetActionCommand ( String texto)Define o texto de ação de commando do componente.

void addAcitonListeneraddAcitonListener ( ActionListener a ) void addItemListeneraddItemListener ( ItemListener i )

44

Exemplo com JCheckBoximport 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

Exemplo com JCheckBoxpublic 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

JRadioButton ( javax.swing.JRadioButton )

Alguns Construtores JRadioButtonJRadioButton ( ) JRadioButtonJRadioButton ( String texto ) JRadioButtonJRadioButton ( String texto,

boolean estado )

47

JRadioButtonRadioButton ( javax.swing.JRadioButton ) Alguns Métodos

boolean isSelectedisSelected ( )Retorna true se o componente estiver selecionado.

void setSelectedsetSelected ( boolean estado )Define o estado do componente.

String getTextgetText ( )Retorna o rótulo do componente.

void setTextsetText ( String texo )Define o rótulo do componente.

void setActionCommandsetActionCommand ( String texto)Define o texto de ação de commando do componente.

void addAcitonListeneraddAcitonListener ( ActionListener a ) void addItemListeneraddItemListener ( ItemListener i )

48

ButtonGroupButtonGroup ( javax.swing.ButtonGroup ) Utilizado para agrupar JRadioButton's

Construtor ButtonGroup ( )

Alguns Métodos void addadd ( AbstractButton b )

Adiciona um botão no grupo. void clearSelectionclearSelection ( )

Limpa a seleção no grupo. String getSelection.getActionCommandgetSelection.getActionCommand ( )

Retorna o texto de ação de comando do componente selecionado.

49

Exemplo com JRadioButtonimport 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

Exemplo com JRadioButtonJPanel 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

JListJList (javax.swing.JList) Alguns Construtores

JList ( ) JList ( Object[] elementos ) JList ( ListModel modelo )

Alguns Métodos int getSelectedIndexgetSelectedIndex ( )

retorna o índice do primeiro elemento selecionado. int [ ] getSelectedIndicesgetSelectedIndices ( )

retorna um array com os índices de todos os elementos selecionados.

Object getSelectedValuegetSelectedValue ( )Retorna o primeiro elemento selecionado.

Object [ ] getSelectedValuesgetSelectedValues ( )Retorna um array com todos os elementos selecionados.

void clearSelectionclearSelection ( )Limpa a seleção dos elementos.

ListModel getModelgetModel ( )Retorna o modelo de dados da lista.

void setListDatasetListData ( Object [ ] elementos )Cria um ListModel através do array e o aplica à lista.

52

JListJList (javax.swing.JList) boolean isSelectedIndexisSelectedIndex ( int índice )

retorna true se o elemento estiver selecionado. boolean isSelectionEmptyisSelectionEmpty ( )

retorna true se não houver nenhum elemento selecionado.

void setVisibleRowCountsetVisibleRowCount (int qtd)Define a quantidade de elementos exibidos.

void setSelectedIndexsetSelectedIndex ( int índice )Seleciona um elemento.

void setSelectedIndicessetSelectedIndices ( int [] índices )Seleciona todos os elementos indicados no array.

void setSelectionModesetSelectionMode ( int modo)Define o modo de seleção, modo pode ser:

ListSelectionModel.SINGLE_SELECTION ListSelectionModel.SINGLE_INTERVAL_SELECTION ListSelectionModel.MULTIPLE_INTERVAL_SELECTIO

N

53

DefaultListModelDefaultListModel (javax.swing.DefaultListModel) Construtor

DefaultListModel ( )

Alguns Métodos void addElementaddElement ( Object elemento )

Adiciona um elemento ao final da lista. void clearclear ( )

Remove todos os elementos da lista. Object getElementAtgetElementAt ( int índice )

Retorna o elemento especificado. int getSizegetSize ( )

Retorna o número de elementos na lista. boolean isEmptyisEmpty ( )

Retorna true se a lista estiver vazia. Object removeremove ( int índice )

Remove um elemento de índice especificado.

54

Exemplo JListExemplo JListimport 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

Exemplo JListExemplo JListbtn = 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

JComboBoxJComboBox (javax.swing.JComboBox) Alguns Construtores

JComboBox ( ) JComboBox ( Object[] elementos ) JComboBox ( ComboBoxModel modelo )

Alguns Métodos int getSelectedIndexgetSelectedIndex ( )

Retorna o índice do primeiro elemento selecionado. Object getSelectedItemgetSelectedItem ( )

Retorna o primeiro elemento selecionado. void addItemaddItem ( Object elemento )

Adiciona um item na lista. void removeAllItemsremoveAllItems ( )

Remove todos os elementos da lista. void setMaximumRowCountsetMaximumRowCount ( int qtdLinhas)

Define o número máximo de linhas a ser exibido. void setSelectedIndexsetSelectedIndex ( int índice )

Seleciona um determinado elemento. ComboBoxModel getModelgetModel ( )

Retorna o modelo da lista.

57

DefaultComboBoxModelDefaultComboBoxModel(javax.swing.DefaultComboBoxModel)

Alguns Construtores DefaultComboBoxModel ( ) DefaultComboBoxModel ( Object [] elementos)

Alguns Métodos void addElementaddElement ( Object elemento )

Adiciona um elemento ao final da lista. Object getElementAtgetElementAt ( int índice )

Retorna o elemento especificado. int getSizegetSize ( )

Retorna o número de elementos na lista. void removeAllElementsremoveAllElements ( )

Remove todos os elementos da lista. Object removeElementAtremoveElementAt ( int índice )

Remove um elemento de índice especificado.

58

Exemplo JComboBoxExemplo JComboBoximport 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

Exemplo JComboBoxExemplo JComboBoxpack();setVisible(true);

}public void actionPerformed(ActionEvent evt) {

Object selecionado = combo.getSelectedItem();JOptionPane.showMessageDialog(null, selecionado);

}public static void main(String[] args) {

new ExemploJComboBox();}

}

60

JTable JTable (javax.swing.JTable)

Alguns Construtores JTable ( ) JTable ( Object [] [] dados, Object [] nomeColunas ) JTable ( TableModel modelo )

Alguns Métodos TableModel getModelgetModel ( )

Retorna o TableModel da tabela. int getRowCountgetRowCount ( )

Retorna a quantidade de linhas no modelo da tabela. int getSelectedColumngetSelectedColumn ( )

Retorna o índice da coluna selecionada, -1 se nenhuma coluna estiver selecionada. int getSelectedRowgetSelectedRow ( )

Retorna o índice da linha selecionada, -1 se nenhuma linha estiver selecionada. int [ ] getSelectedRowsgetSelectedRows ( )

Retorna um array contendo os índices de todas as linha selecionadas. int getSelectedRowCountgetSelectedRowCount ( )

Retorna a quantidade de linhas selecionadas. Object getValueAtgetValueAt (int linha, int coluna )

Retorna o valor de uma célula. void setValueAtsetValueAt ( Object valor, int linha, int coluna )

Define o valor de uma célula.

61

DefaultTableModelDefaultTableModel

(javax.swing.table.DefaultTableModel)

Alguns Construtores DefaultTableModel ( ) DefaultTableModel ( int linhas, int colunas ) DefaultTableModel ( Object [] [] dados, Object []

nomeColunas ) Alguns Métodos

void addRowaddRow ( Object [] linha )Adiciona uma linha no final do modelo da tabela.

int getColumnCountgetColumnCount ( )Retorna a quantidade de colunas do modelo da tabela.

int getRowCountgetRowCount ( )Retorna a quantidade de linhas do modelo da tabela.

Object getValueAtgetValueAt (int linha, int coluna )Retorna o valor de uma célula.

void insertRowinsertRow ( int índice, Object [] linha )Insere uma linha no modelo da tabela.

void removeRowremoveRow ( int índice )Remove uma linha no modelo da tabela.

void setValueAtsetValueAt ( Object valor, int linha, int coluna )Define o valor de uma célula.

62

Exemplo JTableExemplo JTableimport 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

Exemplo JTableExemplo JTablepublic 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

Exemplo JTable usando um Exemplo JTable usando um ResultSetResultSet

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 Principalonde a tabela é

criada

65

Exemplo JTable usando um Exemplo JTable usando um ResultSetResultSet

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

Exemplo JTable usando um Exemplo JTable usando um ResultSetResultSet

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 osmétodos obrigatórios

de AbstractTableModel

67

Exemplo JTable usando um Exemplo JTable usando um ResultSetResultSet

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

Exemplo JTable ResultSet Exemplo JTable ResultSet AtualizávelAtualizá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 Principalonde a tabela é

criada

69

Exemplo JTable ResultSet Exemplo JTable ResultSet AtualizávelAtualizá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

Exemplo JTable ResultSet Exemplo JTable ResultSet AtualizávelAtualizá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

Exemplo JTable ResultSet Exemplo JTable ResultSet AtualizávelAtualizá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 osmétodos obrigatórios

de AbstractTableModel

72

Exemplo JTable ResultSet Exemplo JTable ResultSet AtualizávelAtualizá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

Exemplo JTable ResultSet Exemplo JTable ResultSet AtualizávelAtualizá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ávelif (coluna == 0) {

return false;}return true;

}

74

Exemplo JTable ResultSet Exemplo JTable ResultSet AtualizávelAtualizá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 tabelafireTableDataChanged();

} catch (SQLException e) {e.printStackTrace();

}}public void removeRow(int linha) {

try {rs.absolute(linha + 1);rs.deleteRow();//Atualiza a tabelafireTableRowsDeleted(linha, linha);

} catch (SQLException e) {e.printStackTrace();

}}

}

75

Cores, Desenhos e Fontes Color

Graphics

Font / FontMetrics

76

Color (java.awt.Color) Principais Construtores

ColorColor ( float r, float g, float b ) ColorColor ( float r, float g, float b, float a )

ColorColor ( int r, int g, int b ) ColorColor ( int r, int g, int b, int a )

ColorColor ( int rgb ) ColorColor ( int rgb, boolean hasalpha )

bits: 24-31=alpha; 16-23=red;8-15=green; 0-7=blue

Valores entre0.0f e 1.0f

Valores entre 0 e 255

77

Color (java.awt.Color)

Principais Campos

yellow255, 255, 0

white255, 255, 255

redred255, 0, 0255, 0, 0

pinkpink255, 175, 255, 175, 175175

orangeorange255, 200, 0255, 200, 0

magentamagenta255, 0, 255255, 0, 255

lightGray192, 192, 192

greengreen0, 255, 00, 255, 0

graygray128, 128, 128, 128, 128128

darkGraydarkGray64, 64, 6464, 64, 64

cyan0, 255, 255

blueblue0, 0, 2550, 0, 255

blackblack0, 0, 00, 0, 0

78

Color (java.awt.Color) Principais Métodos

Color brighterbrighter ( )Cria uma nova cor mais clara.

Color darkerdarker ( )Cria uma nova cor mais escura.

int getAlphagetAlpha ( ) int getBluegetBlue ( ) int getGreengetGreen ( ) int getRedgetRed ( ) int getRGBgetRGB ( )

Retorna o valor do campo determinado.

Não possuimétodos set

79

Font (java.awt.Font) Construtores

FontFont ( Map atributos ) FontFont ( String nome, int estilo, int tamanho

)

Principais Campos BOLD ITALIC PLAIN

80

Font (java.awt.Font) Principais Métodos

String getFontNamegetFontName ( )Retorna o nome do font face.

String getNamegetName ( )Retorna o nome lógico da fonte.

int getSizegetSize ( )Retorna o tamanho em pontos da fonte.

int getStylegetStyle ( )Retorna o estilo da fonte.

boolean isBoldisBold ( )indica se o estilo da fonte é BOLD.

boolean isItalicisItalic ( )indica se o estilo da fonte é ITALIC.

boolean isPlainisPlain ( )indica se o estilo da fonte é PLAIN.

81

Font (java.awt.Font) Nomes Lógicos de FontesNomes 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

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 Exemplo que mostra como mostra como

alterar a fonte de alterar a fonte de um componenteum componente

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);String fontfamily[] = GraphicsEnvironment.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 Classe para obter as fontes as fontes

instaladas no instaladas no computador localcomputador local

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

Manipulação de Eventos Eventos de Ação

Eventos de Janela

Eventos de Mouse

86

Eventos de Ação Interface ActionListener

Método actionPerformed

Não possui classe adaptadora Eventos gerados por:

Button List MenuItem TextField

87

Eventos de Açãoimport 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" );btn.addActionListener addActionListener ( new ActionListenerActionListener( ) {

public void actionPerformedactionPerformed ( ActionEventActionEvent evt ) {btn.setBackground ( Color.red );

}} );add ( btn, "North" );setVisible( true );

}public static void main (String args[ ]) {

new AcaoBtn1( );}

}

Ação de umAção de umBotão 1Botão 1

88

Eventos de Açãoimport java.awt.*;import java.awt.event.*;import javax.swing.*;

public class AcaoBtn2 extends JFrame implements implements ActionListenerActionListener {JButton btn;public AcaoBtn2 ( ) {

btn = new JButton ("Botão de Comando" );btn.addActionListeneraddActionListener ( thisthis ) ;add( btn, "North" );setVisible ( true );

}public void actionPerformed ( ActionEventActionEvent evt ) {

ObjectObject source = evt.getSourceevt.getSource( );if ( source == btn )

btn.setBackground(Color.red);}public static void main (String args[ ]) {

new AcaoBtn2( );}

}

Ação de umAção de umBotão 2Botão 2

89

Exercício Implementar a funcionalidade do

programa de cálculos.

90

Eventos de Janela Interface WindowListener

Métodos windowClosing windowOpened windowIconified windowDeiconified windowClosed windowActivated windowDeactivated

Classe adaptadora: WindowAdapterWindowAdapter

91

Eventos de Janelaimport java.awt.*;import java.awt.event.*;import javax.swing.*;public class FechaFrame extends JFrame {

public FechaFrame ( ) { setTitle ( "Oi Tudo Bem" );

setSize (300, 200); setDefaultCloseOperationsetDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSDO_NOTHING_ON_CLOSEE); addWindowListeneraddWindowListener ( new WindowAdapterWindowAdapter ( ) {

public void windowClosingwindowClosing ( WindowEventWindowEvent 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( );}

}

FechamentoFechamentode Janelade Janela

92

Eventos de Janelaimport 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

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

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) {

Color corAtualcorAtual = btn.getBackground();Color novaCornovaCor = JColorChooser.showDialogshowDialog(DialogoCor.this,

"Escolha a cor", corAtualcorAtual);btn.setBackground(novaCor);

}public static void main ( Stirng args [ ] ) {

new DialogoCor ( );}

}

95

Eventos de Mouse Interface MouseListener

Métodos mousePressed mouseReleased mouseEntered mouseExited mouseClicked

Classe adaptadora: MouseAdapterMouseAdapter Interface MouseMotionListener

Métodos mouseDragged mouseMoved

Classe adaptadora: MouseMotionAdapterMouseMotionAdapter

96

Eventos de Mouseimport 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 !");btn.addMouseListeneraddMouseListener ( new MouseAdapterMouseAdapter ( ) {

public void mouseEnteredmouseEntered ( MouseEvent evt ) {btn.setBackground ( Color.yellow );

}public void mouseExitedmouseExited ( MouseEvent evt ) {

btn.setBackground ( Color.red );}

} );add ( btn, "South" );setVisible ( true );

}public static void main ( Stirng args [ ] ) {

new Botao ( );}

}

Eventos de Eventos de Mouse no BotãoMouse no Botão

97

Eventos de Teclado

98

Exemplo: Várias Janelasimport 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

Exemplo: Várias Janelasfr1 = 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

Exemplo: Várias Janelaspublic 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

Exemplo: Várias Janelaspublic 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

Exemplo: Botão Personalizadoimport 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

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

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

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

Exemplo de Tipos de Cursorimport 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

Exemplo de Tipos de Cursorcp.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

Exemplo de Cursor Personalizadoimport 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();

} }

top related