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

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

Upload: igor-vilaverde-avelar

Post on 07-Apr-2016

217 views

Category:

Documents


1 download

TRANSCRIPT

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

1

Curso de Linguagem Java

Marcos Mendes

1º Semestre - 2008

Page 2: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

2

Interface Gráfica - JFC Swing

Page 3: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

Page 4: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

4

Diagrama de Classes Swing

Component

Container

Window

FrameJWindow

Panel

Applet

Object

JFrame JApplet

JComponent

JPanel JButton JLabel

AWT

ComponentesComponentesSwingSwing

Page 5: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

5

Containers Swing (javax.swing)

JFrame

JPanel

JEditorPane

JTabbedPane

JOptionPane

JFileChooser

JColorChooser

Page 6: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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 )

Page 7: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

Page 8: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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();

}}

Page 9: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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( ).

Page 10: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

10

JPanel (javax.swing.JPanel)

Principais Construtores JPanelJPanel ( ) JPanelJPanel ( LayoutManager

gerenciador )

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

Page 11: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

11

Componentes Swing JLabel JButton JToggleButton JTextField JTextArea

JCheckbox ButtonGroup JRadioButton JList JComboBox

Page 12: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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.

Page 13: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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 )

Page 14: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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.

Page 15: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

15

JButton ( javax.swing.JButton )

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

Page 16: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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.

Page 17: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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.

Page 18: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

18

JTextField ( javax.swing.JTextField )

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

colunas )

Page 19: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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.

Page 20: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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.

Page 21: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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();}

}

Page 22: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

}}

Page 23: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

Page 24: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

24

BorderLayout (java.awt.BorderLayout)

North

South

CenterWest East

Page 25: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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.

Page 26: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

26

FlowLayout (java.awt.FlowLayout)

Page 27: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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.

Page 28: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

28

GridLayout (java.awt.GridLayout)

Page 29: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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.

Page 30: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

30

GridBagLayout (java.awt.GridBagLayout)

Page 31: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

Page 32: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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 )

Page 33: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

Page 34: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

Page 35: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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();}

}

Page 36: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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.

Page 37: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

Page 38: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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();}

}

Page 39: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

39

Exercício proposto Crie a seguinte interface:

Anterior

Próximo Sair

Agenda Pessoal

Nome:

Endereço:

Telefone:

Page 40: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

40

Exercício Programa de Cálculos

Programa de CálculosNúmero:

Par / Ímpar Fatorial

Primo Perfeito

___________Resultado:

Page 41: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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.

Page 42: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

42

JCheckBox ( javax.swing.JCheckBox )

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

estado )

Page 43: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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 )

Page 44: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

}

Page 45: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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();}

}

Page 46: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

46

JRadioButton ( javax.swing.JRadioButton )

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

boolean estado )

Page 47: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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 )

Page 48: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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.

Page 49: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

Page 50: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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();}

}

Page 51: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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.

Page 52: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

Page 53: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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.

Page 54: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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");

Page 55: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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();}

}

Page 56: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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.

Page 57: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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.

Page 58: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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");

Page 59: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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();}

}

Page 60: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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.

Page 61: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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.

Page 62: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

}

Page 63: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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();}

}

Page 64: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

Page 65: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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();}

}

Page 66: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

Page 67: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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;

}}

Page 68: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

Page 69: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

}

Page 70: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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();}

}

Page 71: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

Page 72: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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;

}

Page 73: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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;

}

Page 74: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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();

}}

}

Page 75: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

75

Cores, Desenhos e Fontes Color

Graphics

Font / FontMetrics

Page 76: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

Page 77: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

Page 78: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

Page 79: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

79

Font (java.awt.Font) Construtores

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

)

Principais Campos BOLD ITALIC PLAIN

Page 80: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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.

Page 81: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

Page 82: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

Page 83: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

Page 84: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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(); }

}

Page 85: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

85

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

Eventos de Janela

Eventos de Mouse

Page 86: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

86

Eventos de Ação Interface ActionListener

Método actionPerformed

Não possui classe adaptadora Eventos gerados por:

Button List MenuItem TextField

Page 87: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

Page 88: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

Page 89: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

89

Exercício Implementar a funcionalidade do

programa de cálculos.

Page 90: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

90

Eventos de Janela Interface WindowListener

Métodos windowClosing windowOpened windowIconified windowDeiconified windowClosed windowActivated windowDeactivated

Classe adaptadora: WindowAdapterWindowAdapter

Page 91: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

Page 92: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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!"); }

Page 93: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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();

}}

Page 94: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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 ( );}

}

Page 95: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

Page 96: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

Page 97: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

97

Eventos de Teclado

Page 98: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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");

Page 99: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

}

Page 100: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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();}

}

Page 101: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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();

}}

Page 102: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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;

Page 103: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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); } });}

}

Page 104: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

Page 105: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

Page 106: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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

Page 107: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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( );

}}

Page 108: 1 Curso de Linguagem Java Marcos Mendes 1º Semestre - 2008

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();

} }