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

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

Interface Grafica - Swing Professor Rafael Monteiro

Apresentações semelhantes


Apresentação em tema: "Interface Grafica - Swing Professor Rafael Monteiro"— Transcrição da apresentação:

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

2 Swing - Conceitos 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

3 Existem três classes a serem utilizadas na criação de uma GUI:
Swing - Conceitos 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. Existem três classes a serem utilizadas na criação de uma GUI: 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.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.*  permite a utilização de diversas classes do pacote swing. POO usando JAVA

4 Swing – Criação de Frames
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. POO usando JAVA

5 Swing – Compreendendo Eventos
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

6 Swing – Compreendendo Eventos
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

7 Swing – Estrutura Hierárquica AWT e Swing
JWindow Window Dialog JDialog Frame JFrame Component Container JLabel AbstractButton JButton Jcomponent JPanel JRootPane Os retângulos sombreados representam os controles da AWT. POO usando JAVA

8 O que necessito aprender para usar os componentes Swing?
É 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

9 Swing – Exemplo 1 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 classe titulo da Janela dimensoes da janela (Largura e Comprimento) canto esquerdo e topo da tela a janela não pode ser redimensionada cor de fundo da janela JPanel pane = new Jpanel(); pane.setBackground(newColor(180,180,180)); add(pane); getContentPane() é um método que adiciona ao painel. Este retorna uma referencia ao painel de conteúdo do Jfame(um objeto da classe Jframe). declaração e inicialização do objeto Janela Mostra a Janela na tela Continua... POO usando JAVA

10 Swing – Exemplo 1 Continua... POO usando JAVA

11 Swing – Exemplo 2 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)); Em qualquer aplicacao em que as acoes do usuario devem ser interpretadas quando ele interagir com a janela, e necessaria a implementacao de uma interface. Exemplo Neste exemplo foi utilizada a interface ActionListener. Qdo. Uma implementacao de interface eh utilizada, torna-se obrigatorio inserir na aplicacao um ou varios metodos que realizarao o processamento dos eventos. Ao contrario das liguagens de programacoa visuais, nao existe um metodo separado para cada evento gerado em uma janela. Em java, existe apenas a presenca de alguns metodos, comuns a todos os componentes, e actionPerformand eh um deles. Devido ao fato de nao existir um metodo para cada evento dos componentes de uma janela, dentro do metodo actionPerformand eh necessario verificar qual dos componentes eh responsavel pela geracao do evento. Em outras palavrras eh necessario reconhecer em qual componente o usuario clicou, ou deu ENTER e assim por diante. As linhas 29 ate 39 executam as tarefas de reconhecer qual dos botoes foi pressionado. Continua... POO usando JAVA

12 Swing – Exemplo 2 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); } Todo objeto inserido em um frame deve ser registrado para que os eventos gerados por ele sejam reconhecidos, se um objeto nao for registrado ele nao tera nenhuma acao; ficara apenas como uma imagem estatica. O metodo addActionListener(this) eh responsavel por este registro. Assim como o b1 todos os botoes devem ser adicionados ao processador de eventos, ou seja, todo botao que recebe um clique para realizar alguma funcao necessita invocar o metodo actionListener, de forma que o metodo actionPerformedpossa reconhce-lo Continua... POO usando JAVA

13 Swing – Exemplo 2 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"); Comtem um metodo que recebe todas as acoes disparadas na janela, ou seja, todos os eventos gerados a partir de uma interacoa do usuario com a aplicacao. Sua utilizacao e obrigatoria qdo o frame implementa a interface actionListener. A lettra e eh declarada como um objeto da classe ActionEvent e recebera todos os chamados aos eventos da janela. Todos os eventos gerados serao tratados por este metodo actionPeerformed e o objeto ActionEvent sera responsevel por definir qual objeto gerou esse evento Continua... POO usando JAVA

14 Swing – Exemplo 2 Continua... public static void main(String args[]) {
JFrame Janela = new Exemplo2(); Janela.show(); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } Continua... POO usando JAVA

15 Swing – Exemplo 3 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); } Exemplo0904 Continua... POO usando JAVA

16 Swing – Exemplo 3 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)); Continua... POO usando JAVA

17 Swing – Exemplo 3 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(); Continua... POO usando JAVA

18 Swing – Exemplo 3 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); } Continua... POO usando JAVA

19 Swing – Exemplo 3 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 Continua... POO usando JAVA

20 Swing – Exemplo 3 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 } Continua... POO usando JAVA

21 Listas e Caixas de Seleção; Caixas de Opção; Painéis e Botões de Rádio
Swing Continuação ... Listas e Caixas de Seleção; Caixas de Opção; Painéis e Botões de Rádio POO usando JAVA


Carregar ppt "Interface Grafica - Swing Professor Rafael Monteiro"

Apresentações semelhantes


Anúncios Google