A maior rede de estudos do Brasil

Grátis
Aula 2 - Programação Orientada a Eventos

Pré-visualização | Página 1 de 1

programação orientada a eventos
Linguagem de Programação Visual
Prof. Thiago Meirelles Ventura
UFMT – IC – 2013/2
Introdução
2
Introdução
A programação orientada a eventos é um paradigma de programação que não segue um fluxo de controle padronizado.
Seus fluxos de controles são guiados por sinais externos. 
Sua aplicação está diretamente ligada com o desenvolvimento de interfaces voltada para o usuário.
3
Introdução
Um usuário normalmente interage com a interface de um sistema para indicar uma atividade que o sistema deve fazer.
Exemplo: enviar e-mail
Ao pressionar o botão “Send”,
 um evento é chamado.
4
Evento
Ação detectada pelo programa que pode ser controlada pelo programa
Evento
Evento
Podemos pensar no programa como um grande loop:
7
Evento - handlers
O método que é executado quando um evento é disparado, chama-se: handler.
public class ExemploHandler extends JFrame 
				 implements ActionListener {
[...]
	JButton okButton = new JButton("Ok");
	okButton.addActionListener(this);
[...]
public void actionPerformed(ActionEvent e) {
	[...]
} 
Evento - handlers
O método que é executado quando um evento é disparado, chama-se: handler.
public class ExemploHandler extends JFrame 
				 implements ActionListener {
[...]
	JButton okButton = new JButton("Ok");
	okButton.addActionListener(this);
[...]
public void actionPerformed(ActionEvent e) {
	[...]
} 
Evento - tipos
Existem vários tipos de eventos
Comandos com o mouse
Comandos com o teclado
Ações com relação a tela
E outros, como o touch
Evento - problema
Atividades externas: assíncrono
Execução do programa: síncrono
11
Threads
O uso de threads permite que mais de uma ação aconteça ao mesmo tempo em um programa.
Possibilitando a programação e uso de eventos
Threads - exemplos
Leitura contínua de dados de um dispositivo de entrada
Em alguns casos o programa não pode parar o seu processamento para fazer a leitura de um dado.
Uma thread pode ficar responsável apenas para ler os dados
Threads - exemplos
Editor de texto
Thread para fazer correção ortográfica
Thread para fazer gravação automática
Thread para sugerir palavras
...
Threads - exemplos
Programa de chat on-line
Uma thread para cada conversa
http://tech.gaeatimes.com/
Threads - exemplos
Grande quantidade de processamento
Utilizar de paralelismo
Uma thread diferente para cada processamento
Threads - vantagens
Permitir a exploração do paralelismo real oferecido por máquinas multiprocessadores
Aumentar número de atividades executadas por unidade de tempo
Aumentar o tempo de resposta, possibilidade de associar threads a dispositivos de entrada/saída
Sobrepor operações de cálculo com operações de entrada e saída
Exceções
Uma exceção (exception) surge quando algo anormal acontece durante o processamento de um programa.
Exceções - exemplos
Divisão por zero
Atribuir um valor à uma variável de tipo incompatível
Acessar o atributo de uma variável nula
Acessar uma posição inválida de um vetor
Abrir um arquivo inexistente
Falha na conexão com banco de dados
...
Erros customizados
Exceções - handler
try {
	[...]
} catch( TipoDeExceção1 identificador1 ) {
	[...]
} catch( TipoDeExceção2 identificador2 ) {
	[...]
} finally {
	[...]
}
Exceções - handler
try {
	[...]
} catch( TipoDeExceção1 identificador1 ) {
	[...]
} catch( TipoDeExceção2 identificador2 ) {
	[...]
} finally {
	[...]
}
Exceções - handler
try {
	[...]
} catch( TipoDeExceção1 identificador1 ) {
	[...]
} catch( TipoDeExceção2 identificador2 ) {
	[...]
} finally {
	[...]
}
Exceções - handler
try {
	[...]
} catch( TipoDeExceção1 identificador1 ) {
	[...]
} catch( TipoDeExceção2 identificador2 ) {
	[...]
} finally {
	[...]
}
Exceções - handler
try {
	for (int i = 0; i <= 15; i++) {
		array[i] = i; 
		System.out.println(i);
	}
} catch (ArrayIndexOutOfBoundsException e) {
	System.out.println("erro: " + e);
}
Exceções - throw
try {
	new java.io.FileInputStream("arquivo.txt");
} catch (java.io.FileNotFoundException e) {
	throw new Exception (”Não foi possível abrir 					o arquivo");
}
Exceções - stacktrace
Exceções - linguagens
Algumas linguagens que suportam o controle de exceções:
C/C++
C#
Java
JavaScript
Objective-C
PHP
Python
Ruby
Visual Basic