21
Professor Rafael Monteiro Professor Rafael Monteiro JAVA Interface Grafica - Swing POO usando JAVA

Professor Rafael Monteiro JAVA Interface Grafica - Swing POO usando JAVA

Embed Size (px)

Citation preview

Page 1: Professor Rafael Monteiro JAVA Interface Grafica - Swing POO usando JAVA

Professor Rafael MonteiroProfessor Rafael Monteiro

JAVAInterface Grafica - Swing

POO usando JAVA

Page 2: Professor Rafael Monteiro JAVA Interface Grafica - Swing POO usando JAVA

O pacote Swing não é um substituto do AWT ( Abstract Window Toolkit ), o pacote gráfico utilizado nas primeiras versões de java. Em vez disso, o Swing é visto como uma camada disposta sobre o AWT e que utiliza internamente os componentes da AWT. Diferentemente da AWT, onde alguns componentes gráficos utilizavam a capacidade de renderização da interfaces gráficas em que o aplicativo estava sendo executado, os componentes do Swing são todos escritos em puro java.

Um componente do pacote Swing é reconhecido pela letra J antecedendo o nome do mesmo componente no pacote AWT.

POO usando JAVA 2

Page 3: Professor Rafael Monteiro JAVA Interface Grafica - Swing POO usando JAVA

Todas as classes do swing são extenções da classe AWT, que por sua vez, são extenções da classe java.lang.Object, a superclasse de todas as classes do Java.

POO usando JAVA

Existem três classes a serem utilizadas na criação de uma GUI:Existem três classes a serem utilizadas na criação de uma GUI:

import java.awt.*import java.awt.* permite a utilização de diversas classes do pacote AWT, além de possuir uma série de constantes numéricas.

imoport java.awt.eventimoport java.awt.event usado para o processamento dos eventos que ocorrerão na janela, tais como: Click do Mouse, ENTER do campo texto, etc.

import javax.Swing.*import javax.Swing.* permite a utilização de diversas classes do pacote swing.

3

Page 4: Professor Rafael Monteiro JAVA Interface Grafica - Swing POO usando JAVA

POO usando JAVA

Frame é um componente do pacote AWT responsável pela criação de janeas, parecidas com as encontradas em aplicativos do ambiente Windows. O componente frame gera uma janela com barra de título, bordas e pode ter outros componentes em seu interior. Imagine o componente frame como uma folha de projeto em que são inseridos diversos objetos. Em conjunto com esses objetos, definidos no metodo construtor da classe, o componente frame gera uma visualização grafica de um determinado aplicativo. Esta classe estende diretamente a classe Frame do AWT.

4

Page 5: Professor Rafael Monteiro JAVA Interface Grafica - Swing POO usando JAVA

As interfaces gráficas são elementos baseados em eventos.

De uma maneira geral, eventos são interaçãao do usuário com a interface gráfica.

Mover o mouse é um evento; fechar uma janela é um outro evento.nn

Eventos ocorrem a todo instante nos aplicativos modernos.

Continua...

POO usando JAVA 5

Page 6: Professor Rafael Monteiro JAVA Interface Grafica - Swing POO usando JAVA

Quando o usuário interage con um objeto da interface gráfica, um evento é enviado automaticamente para o programa na expectativa de que ele seja identificado e tratado e convenientemente tratado para produzir algum tipo de resposta à ação realizada sobre o objeto.

POO usando JAVA 6

Page 7: Professor Rafael Monteiro JAVA Interface Grafica - Swing POO usando JAVA

POO usando JAVA

Os retângulos sombreados representam os controles da AWT.

JWindow

Dialog

Frame

JLabel

AbstractButtonJPanel

JRootPane

JDialog

JFrame

JButton

Window

Jcomponent

Container

Component

7

Page 8: Professor Rafael Monteiro JAVA Interface Grafica - Swing POO usando JAVA

É possível utilizar alguns componentes básicos do Swing diretamente.

Com o Swing não há mudanças fundamentais no modo como as aplicações são construídas.

Pode-se criar a janela principal da aplicação, usar frames, componentes e gerenciadores de layout e é possível estabelecer conexão quase que da mesma forma nterfaces gráficas são elementos baseados em eventos.

POO usando JAVA 8

Page 9: Professor Rafael Monteiro JAVA Interface Grafica - Swing POO usando JAVA

POO usando JAVA

Continua...

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

class Exemplo1 extends JFrame { Exemplo1() { setTitle("Minha primeira Janela em Java"); setSize(400,50); setLocation(150,150); setResizable(false); getContentPane().setBackground(Color.gray); String x = getTitle(); }

public static void main(String args[]) { JFrame Janela=new Exemplo1(); Janela.show(); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); Janela.setVisible(true); }}

Importação de Pacotes

Extende de JFrame

construtor - mesmo nome da classetitulo da Janela

dimensoes da janela (Largura e Comprimento)canto esquerdo e topo da tela

a janela não pode ser redimensionadacor de fundo da janela

declaração e inicialização do objeto Janela

JPanel pane = new Jpanel();pane.setBackground(newColor(180,180,180));add(pane);

Mostra a Janela na tela

9

Page 10: Professor Rafael Monteiro JAVA Interface Grafica - Swing POO usando JAVA

POO usando JAVAContinua...

Page 11: Professor Rafael Monteiro JAVA Interface Grafica - Swing POO usando JAVA

POO usando JAVA

Continua...

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

public class Exemplo2 extends JFrame implements ActionListener { JButton b1,b2; ImageIcon icone = new ImageIcon("C:/Livros/Java/busca.gif"); Defini-se uma imagem

public Exemplo2() { setTitle("Inserindo botoes na janela"); setSize(350,100); setLocation(50,50); getContentPane().setBackground(new Color(180,180,180));

11

Page 12: Professor Rafael Monteiro JAVA Interface Grafica - Swing POO usando JAVA

POO usando JAVA

Continua...

b1 = new JButton("Busca",icone); b1.setHorizontalTextPosition(AbstractButton.LEFT); //posicao do texto b1.setVerticalTextPosition(AbstractButton.TOP); //posicao do texto b1.setBackground(new Color(100,180,180)); //cor de fundo do botao b1.setForeground(Color.black); //cor do titulo do botao b1.setFont(new Font("ScriptS",Font.BOLD,20)); //define a fonte do botao b1.setEnabled(true); //Esta condicao eh Defaut, podendo ser alterada para FALSE b1.addActionListener(this); //registra o b1 para que um evento seja gerado por ele b1.setToolTipText("Pressione aqui para realizar uma busca"); //exibe a mensagem qdo o ponteiro do estiver sobre o botao. b1.setMnemonic(KeyEvent.VK_B); //cria um atalho via teclado: ALT + B b2 = new JButton("Cancelar"); b2.addActionListener(this); b2.setMnemonic(KeyEvent.VK_C); b2.setToolTipText("Pressione aqui para cancelar"); getContentPane().setLayout(new FlowLayout()); //gerenciador de layout getContentPane().add(b1); getContentPane().add(b2); }

12

Page 13: Professor Rafael Monteiro JAVA Interface Grafica - Swing POO usando JAVA

POO usando JAVA

Continua...

public void actionPerformed(ActionEvent e) { // metodo implementado pelo ActionListener if (e.getSource()==b1) //se o objeto que gerou o evento for o botao b1 { System.out.println("Botao 1 pressionado"); } if (e.getSource()==b2) { System.out.println("Botao 2 pressionado"); } }

13

Page 14: Professor Rafael Monteiro JAVA Interface Grafica - Swing POO usando JAVA

POO usando JAVAContinua...

public static void main(String args[]) { JFrame Janela = new Exemplo2(); Janela.show(); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); }}

Page 15: Professor Rafael Monteiro JAVA Interface Grafica - Swing POO usando JAVA

POO usando JAVA

Continua...

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

class Exemplo3 extends JFrame implements ActionListener{ JLabel L1,L2,L3; JButton B1, B2, B3, B4, B5; JTextField T1,T2,T3;

public static void main(String args[]) {

JFrame Janela=new Exemplo3();Janela.show();setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

}

15

Page 16: Professor Rafael Monteiro JAVA Interface Grafica - Swing POO usando JAVA

POO usando JAVA

Continua...

Exemplo3() { setTitle("Calculadora"); setSize(350,90); setLocation(50,50); getContentPane().setBackground(new Color(150,150,150)); getContentPane().setLayout(new GridLayout(3,4)); L1 = new JLabel("Num.1"); L1.setForeground(Color.black); L1.setFont(new Font("",Font.BOLD,14)); L2 = new JLabel("Num.2"); L2.setForeground(Color.black); L2.setFont(new Font("",Font.BOLD,14)); L3 = new JLabel("Total"); L3.setFont(new Font("",Font.BOLD,14));

16

Page 17: Professor Rafael Monteiro JAVA Interface Grafica - Swing POO usando JAVA

POO usando JAVA

Continua...

B1 = new JButton ("+"); B1.addActionListener(this); B2 = new JButton ("-"); B2.addActionListener(this); B3 = new JButton ("x"); B3.addActionListener(this); B4 = new JButton ("/"); B4.addActionListener(this); B5 = new JButton ("Limpar"); B5.addActionListener(this); B5.setBackground(Color.black); B5.setForeground(Color.white); T1 = new JTextField(); T2 = new JTextField(); T3 = new JTextField();

17

Page 18: Professor Rafael Monteiro JAVA Interface Grafica - Swing POO usando JAVA

POO usando JAVA

Continua...

// T1.addTextListener(this); T3.setEditable(false); //define que o textField como somente leitura //adicionam todos os objetos na janela na ordem que aparecem getContentPane().add(L1); getContentPane().add(T1); getContentPane().add(B1); getContentPane().add(B2); getContentPane().add(L2); getContentPane().add(T2); getContentPane().add(B3); getContentPane().add(B4); getContentPane().add(L3); getContentPane().add(T3); getContentPane().add(B5); }

18

Page 19: Professor Rafael Monteiro JAVA Interface Grafica - Swing POO usando JAVA

POO usando JAVA

Continua...

public void actionPerformed(ActionEvent e) { if (e.getSource()==B5) { T1.setText(""); T2.setText(""); T3.setText(""); return; } float N1=0,N2=0,result=0; try { N1 = Float.parseFloat(T1.getText()); N2 = Float.parseFloat(T2.getText()); } catch (NumberFormatException erro) { T3.setText("Erro"); return; //encerara o método actionPerformed }

19

Page 20: Professor Rafael Monteiro JAVA Interface Grafica - Swing POO usando JAVA

POO usando JAVA

Continua...

if (e.getSource()==B1) { result = N1 + N2; } if (e.getSource()==B2) { result = N1 - N2; } if (e.getSource()==B3) { result = N1 * N2; } if (e.getSource()==B4) { result = N1 / N2; } T3.setText(""+result); //qdo um numero e concatenado com um texto automaticamente ele se transforma em um texto }}

20

Page 21: Professor Rafael Monteiro JAVA Interface Grafica - Swing POO usando JAVA

POO usando JAVA

Continuação ...Continuação ...

Listas e Caixas de Listas e Caixas de Seleção; Caixas de Seleção; Caixas de

Opção; Painéis e Botões Opção; Painéis e Botões de Rádio de Rádio

21