Exemplo com SWING 1: Fazer uma aplicação, em Java, que tenha, na tela, uma JProgressBar, um JLabel e um JButton.



Documentos relacionados
Exemplo Threads com Swing:

package br.com.cadastro.visao;

LINGUAGEM DE PROGAMAÇÃO II Criando uma Classe

LPII Programando uma Cálculadora Simples Módulo III

HABILITANDO A IDE DO ECLIPSE

Is Event Dispatcher Threade (Animation)

MÓDULO 4 SWING Parte 3

JAVA APLICAÇÕES GRÁFICAS Propriedade Utilizada: FontSizeAnimation

Analisar os sistemas operacionais apresentados na figura e responder as questões abaixo: Identificar

Programação Orientada a Objetos

Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.

Universidade da Beira Interior. Sistemas Distribuídos

Especialização em Engenharia de Software - CEUT

Aula 11: Interfaces gráficas (1/2): elementos de interface Swing

Tutorial de Computação Introdução a Programação Gráfica em Java para MEC1100 v

JAVA APLICAÇÕES GRÁFICAS Propriedades Utilizadas: imagecomposite FACULDADE DE TECNOLOGIA SENAC PELOTAS

INTERFACE COM O USUÁRIO (em Java) Programação Orientada a Objetos

Multithreading. Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC - Programação em Comunicações

Jogo Da Velha. - Parte 1 - Fazendo a parte gráfica do jogo da Velha

JAVA APLICAÇÕES GRÁFICAS Propriedades Utilizadas: Resize Shape Basic Shape FACULDADE DE TECNOLOGIA SENAC PELOTAS

THREADS EM JAVA. George Gomes Cabral

Programação Concorrente/Paralela em Java

Criação de Applets Package: Class Name Base Class: Generate header comments: Can run standalone: Generate Standard methods:

Programação Orientada a Objetos em Java. Threads Threads Threads. Threads

Crie dois pacotes: jogo e imagens Coloque as imagens da cobra, da fruta e da parede no pacote imagens Crie uma nova classe chamada Cobra no pacote

Objectivos:. Construir programas com interfaces gráficas Graphical User Interface (GUI) application programs

Programação de Computadores e Robocode.

Caso não exista nenhum listener registado no objecto que gera o evento, este não terá qualquer efeito.

Programação Concorrente em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM

Java - Swing. Raphaela Galhardo raphaela@j2eebrasil.com.br

Curso Java Starter. 1

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Java. Marcio de Carvalho Victorino

Roteiro para criação de Applet

Vector Java. Empregado.java

insfcanceof new public switch transient while byte continue extends for int null

O programa abaixo exemplifica o uso da classe Image para carregar e mostrar uma imagem localizada em um arquivo.

Técnicas de Programação II

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Módulo 5 - JDBC java.sql - Conexão com Banco de Dados

Criando um aplicação simples com JAVA e MySQL usando NetBeans Parte II

Neste tutorial apresentaremos as vantagens e facilidades de usar a ferramenta de Deployment Java Web Start.

ESTRUTURA BÁSICA DE UM PROGRAMA JAVA

Universidade Federal da Paraíba

Java : Comunicação Cliente-Servidor.

Programação Java. Construção de Interface gráfica. Processo Básico: OO + Eventos. Exemplo

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Aula Prática Criando Views e Controles

CAPA PARA OS CABOS DA CABEÇA

1 Criando um aplicativo visual em Java

A TAMPA DO COMANDO À DISTÂNCIA

Eclipse IDE Dá-se importância aos antepassados quando já não temos nenhum. Francois Chateaubriand

PROGRAMAÇÃO ORIENTADA A OBJETOS -INTERFACES GRÁFICAS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Desenvolvimento de Aplicações Desktop

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Programação Orientada a Objetos II

Programação de Computadores - I. Profª Beatriz Profº Israel

Esteiras eletrônicas controladas por micro. computador

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

Criando interfaces com o usuário. Continuação

Java Threads. Introdução

UNIVERSIDADE FEDERAL DO PARANÁ

Tratamento de Eventos

Programação Orientada a Objetos (DPADF 0063)

Para criar uma animação precisamos de uma imagem e que ela contenha alguns frames. O número de frames é uma escolha sua.

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA A F B G C H D I E J

Threads, Gerenciamento de Threads. Pool de Threads, Grupo de Threads Variáveis Locais à Threads

Prova de Java. 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos)

MANIPULAÇÃO DE BANCO DE DADOS UTILIZANDO INTERFACE GRÁFICA

Capítulo 12 Eventos de interacção

Java Foundation Classes Coleção de pacotes para criação de aplicações completas Desktop Interfaces gráficas (GUIs- Graphical User Interface)

Passando dados binários para um serviço Web

Programação III. Interface Gráfica - Swing. Interface Gráfica Swing Jocélio Passos joceliodpassos@bol.com.br. Interface Gráfica - Swing

Exemplo 1. Um programa que cria uma instância de uma classe que herda da classe Frame

A Linguagem Java. Alberto Costa Neto DComp - UFS

Java Básico. Matrícula de Alunos. Marco Antonio, Arquiteto de Software TJDF Novembro/2005

Introdução à Tecnologia Java 02/2012. Java Aula 04 MDI. 05/09/2012 Celso Olivete Júnior.

(Aula 17) Threads em Java

Threads e Sockets em Java. Threads em Java. Programas e Processos

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM

MANIPULAÇÃO DE EVENTOS

Java Spaces Exemplos

JAVA APLICAÇÕES GRÁFICAS Propriedades Utilizadas: Font size Animation FACULDADE DE TECNOLOGIA SENAC PELOTAS

2 Orientação a objetos na prática

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente

Adicionando Caixas de Verificação no seu Programa Java

Computação Paralela. Uma framework para aplicações concorrentes João Luís Ferreira Sobral Departamento do Informática Universidade do Minho

Natureza do Software e dos Sistemas

Aula 04 Operadores e Entrada de Dados. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

JCheckbox JRadioButton JComboBox JList JMenu... Alguns componentes já vistos em aula JButton JLabel JTextField

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares

Conversão de Tipos e Arrays

Tutorial Introdução ao ambiente Eclipse

Técnicas de Programação II

Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Programando GUIs

Curso de Java Módulo II Swing Fábio Mengue Centro de Computação - Unicamp

Prática em Laboratório N.02 Criando um serviço Web via NetBeans

Threads e Concorrência em Java (Material de Apoio)

Transcrição:

Exemplo com SWING 1: Fazer uma aplicação, em Java, que tenha, na tela, uma JProgressBar, um JLabel e um JButton. A aplicação deve ter duas Threads. A primeira, fará com que a JProgressBar incremente, num intervalo de 20 ms. A segunda, enquanto a primeira estiver viva, irá alternando 3 palavras em um tempo de exibição constante, de 100 ms. O Botão deve iniciar a chamada das Threads e fazer com que ele próprio desapareça. import java.awt.borderlayout; import java.awt.eventqueue; import javax.swing.jframe; import javax.swing.jpanel; import javax.swing.border.emptyborder; import javax.swing.jlabel; import java.awt.font; import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.jprogressbar; import javax.swing.jbutton; public class ExemploSwing1 extends JFrame { private JPanel contentpane; /** * Launch the application. */ public static void main(string[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { ExemploSwing1 frame = new ExemploSwing1(); frame.setvisible(true); catch (Exception e) { e.printstacktrace(); ); /** * Create the frame. */ public ExemploSwing1() { setdefaultcloseoperation(jframe.exit_on_close); setbounds(100, 100, 450, 300); contentpane = new JPanel(); contentpane.setborder(new EmptyBorder(5, 5, 5, 5)); setcontentpane(contentpane); contentpane.setlayout(null); final JLabel lblnewlabel = new JLabel(" "); lblnewlabel.setfont(new Font("Tahoma", Font.BOLD, 18)); lblnewlabel.setbounds(10, 132, 98, 49); contentpane.add(lblnewlabel); final JProgressBar progressbar = new JProgressBar(); progressbar.setbounds(10, 35, 188, 42); contentpane.add(progressbar); JButton btnincio = new JButton("In\u00EDcio"); btnincio.setbounds(10, 228, 89, 23); contentpane.add(btnincio);

final Thread tbarra = new Thread(){ public void run(){ for (int i = 1 ; i <= 100 ; i++){ progressbar.setvalue(i); try{ Thread.sleep(20); catch (InterruptedException ex) { ex.printstacktrace(); ; final Thread tlabel = new Thread(){ public void run(){ int contador = 1; String texto = ""; while (tbarra.isalive()){ switch (contador) { case 1: texto = "Boa"; break; case 2: texto = "Tarde"; break; case 3: texto = "Galera"; lblnewlabel.settext(texto); contador++; if (contador == 4){ contador = 1; try{ Thread.sleep(100); catch (InterruptedException ex){ ex.printstacktrace(); ; btnincio.addactionlistener(new ActionListener() { @Override public void actionperformed(actionevent arg0) { tbarra.start(); tlabel.start(); );

Exemplo com SWING 2: Fazer uma aplicação Java com 2 JLabel, com um ponto final, em formatação Negrito, tamanho 70 e um JButton. A aplicação deve conter 2 Threads e um método. O método deve fazer o ponto dar uma volta completa em 13 passos, onde os 3 primeiros devem fazer o ponto descer 10 px por vez, os 4 seguintes devem fazer o ponto andar 20 px à direita, por vez, os 3 passos seguintes devem fazer o ponto subir 10 px por vez e, por fim, os 4 seguintes devem fazer o ponto andar 20 px à esquerda, retornando ao ponto de partida. Cada Thread deve chamar o método para movimentar um JLabel diferente. O JButton inicia a aplicação. import java.awt.borderlayout; import java.awt.eventqueue; import java.awt.rectangle; import javax.swing.jframe; import javax.swing.jpanel; import javax.swing.border.emptyborder; import javax.swing.jlabel; import java.awt.font; import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.jbutton; public class ExemploSwing2 extends JFrame { private JPanel contentpane; /** * Launch the application. */ public static void main(string[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { ExemploSwing2 frame = new ExemploSwing2(); frame.setvisible(true); catch (Exception e) { e.printstacktrace(); ); /** * Create the frame. */ public ExemploSwing2() { setdefaultcloseoperation(jframe.exit_on_close); setbounds(100, 100, 450, 300); contentpane = new JPanel(); contentpane.setborder(new EmptyBorder(5, 5, 5, 5)); setcontentpane(contentpane); contentpane.setlayout(null); final JLabel lblbolinha1 = new JLabel("."); lblbolinha1.setfont(new Font("Tahoma", Font.BOLD, 70)); lblbolinha1.setbounds(58, 64, 68, 74); contentpane.add(lblbolinha1); final JLabel lblbolinha2 = new JLabel("."); lblbolinha2.setfont(new Font("Tahoma", Font.BOLD, 70)); lblbolinha2.setbounds(313, 64, 68, 74); contentpane.add(lblbolinha2);

JButton btniniciar = new JButton("Iniciar"); btniniciar.setbounds(0, 0, 89, 23); contentpane.add(btniniciar); final Thread tbolinha1 = new Thread(){ public void run(){ mexebolinha(lblbolinha1); ; final Thread tbolinha2 = new Thread(){ public void run(){ mexebolinha(lblbolinha2); ; btniniciar.addactionlistener(new ActionListener() { @Override public void actionperformed(actionevent arg0) { tbolinha1.start(); tbolinha2.start(); ); public static void mexebolinha(jlabel lblbolinha){ Rectangle posicao; posicao = lblbolinha.getbounds(); lblbolinha.setbounds(posicao); int contadordemov = 0; while (contadordemov <= 12){ if (contadordemov <= 2){ posicao.y = posicao.y + 10; else { if (contadordemov > 2 && contadordemov <= 6){ posicao.x = posicao.x + 20; else { if (contadordemov > 6 && contadordemov <= 9){ posicao.y = posicao.y - 10; else { if (contadordemov > 9 && contadordemov <= 12){ posicao.x = posicao.x - 20; lblbolinha.setbounds(posicao); try { Thread.sleep(500); catch (InterruptedException ex) { ex.printstacktrace(); contadordemov++;

Exercícios: 1) Fazer uma aplicação que rode 5 Threads que cada uma delas imprima no console o seu número. 2) Fazer uma aplicação que insira números aleatórios em uma matriz 3 x 5 e tenha 3 Threads, onde cada Thread calcula a soma dos valores de cada linha, imprimindo a identificação da linha e o resultado da soma. 22

Exercícios: 3) Fazer uma aplicação de uma corrida de sapos, com 5 Threads, cada Thread controlando 1 sapo. Deve haver um tamanho máximo para cada pulo do sapo (em metros) e a distância máxima para que os sapos percorram. A cada salto, um sapo pode dar uma salto de 0 até o tamanho máximo do salto (valor aleatório). Após dar um salto, a Thread, para cada sapo, deve mostrar no console, qual foi o tamanho do salto e quanto o sapo percorreu. Assim que o sapo percorrer a distância máxima, a Thread deve apresentar que o sapo chegou e qual sua colocação. 23

Exercícios: 4) Utilizando o Java SWING, criar uma tela, semelhante à tela abaixo, para criar uma corrida de carros, tipo drag race. A aplicação deve ter a distância que os carros devem correr e a velocidade máxima dos carros. Os carros (Jlabel) devem, a cada 100 ms, dar uma arrancada de velocidade que pode estar entre 0 e a velocidade máxima (definida aleatoriamente). Assim que o primeiro carro chegar, o JTextField Vencedor deve receber o nome deste e o JTextField Perdedor receberá o nome do outro carro. Assim que a corrida se inicia, o botão Correr deve sumir. 24

Exercícios 4) 25

Exercícios: 5) Fazer, com o Java SWING, uma aplicação de caça-níquel, conforme figura abaixo. O caça níquel tem 3 JTextFields, independentes, que giram, aleatoriamente, de 1 a 150 vezes e apresentará um número de 1 a 7. Quando iniciado, o botão Jogar deve desaparecer. 26