Vous êtes sur la page 1sur 17

Imagens gráficas

Criando desenhos simples: retângulos e círculos


Problema
• Desenhar janelas: com retângulos e círculos....
O que já aprendemos
• Desenhar janelas: com duas linhas diagonais....
Revendo conceitos: coordenadas em matemática
eixo y

( x , y)
y

( 0 , 0)
x eixo x

• Valor x -> Projeção do eixo x


• Valor y -> Projeção do eixo y
Revendo conceitos: coordenadas em matemática
eixo y

( x , y)
30

( 0 , 0)
50 eixo x

• Valor x -> Projeção do eixo x


• Valor y -> Projeção do eixo y
• Qual o valor de (x,y) no ponto
Revendo alguns conceitos sobre:
Coordenadas em Java
50 eixo x
( 0 , 0)

30
( x , y)

eixo x
• Valor x -> Projeção no eixo x
• Valor y -> Projeção no eixo y
• Qual o valor de (x,y ) no ponto ?
Sistemas coordenadas do Java
x eixo x
( 0 , 0)

• As coordenadas indicam onde elementos


gráficos devem ser exibidos em uma tela
y
( x , y)
• As unidades são medidas em pixels
(picture element – elemento de imagem)

• De uma forma mais simples, um pixel é


eixo x o menor ponto que forma uma imagem digital,
sendo que o conjunto de milhares de pixels
formam a imagem inteira.
• Em resolução de 640 x 480 temos 307.200 pixels,
a 800 x 600 temos 480.000 pixels,
a 1024 x 768 temos 786.432 pixels e assim por diante.
Conceitos de Janela e Painel

Adiciono o painel na janela

• Janela (JFrame) moldura • Painel (JPanel) é uma folha


• Adicionado uma folha • Onde adiciona elementos
gráficos:
• botões., linhas...
Criando uma Janela
// Criando uma janela com JFrame sem painel
// naur jr em 05/03/15 (sem painel)
import javax.swing.JFrame;

public class DesenhandoJanelaTeste


{
public static void main(String[] args)
{

// cria uma novo Frame(janela)


JFrame applicacao = new JFrame();

// set (configura) o Frame(janela) para sair quando ela é fechada


applicacao.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

applicacao.setSize(250, 250); // set o tamanho da janela (frame)


applicacao.setVisible(true); // faz o janela (frame) visivel
}
} // fim class DesenhandoJanelalTest
Desenhando uma Linha
// Usando drawLine para desenhar uma linha horizontal no meio do painel.
( 0 , 0)
// naur jr. 05/03/15

import java.awt.Graphics;
import javax.swing.JPanel;
( 0 , maxAltura/2)
public class DesenhandoLinhaMeio extends JPanel
{
// desenha um linha no painel
public void paintComponent(Graphics g)
{ (maxLargura ,maxAltura/2 )
// chama paintComponent para certificar que o painel será mostrado corretamente
super.paintComponent(g);

int maxLargura = getWidth(); // obtem a largura máxima


int maxAltura = getHeight(); // obtém a altura máxima

// desenha uma linha da meio-esquerda para esquerda meio-direita -> horinzontal


// (x ,y , x, y) -> (0,meioAltura , maxLargura, meioAltura)
g.drawLine( 0 , maxAltura/2 , maxLargura, maxAltura/2 );
}
} // fim class DesenhandoLinhaMeio
// Criando uma janela com JFrame e adicionando
// o painel com a linha no meio Criando a janela e testando -
// naur jr em 05/03/15

import javax.swing.JFrame;

public class DesenhandoLinhaMeioTeste


{
public static void main(String[] args)
{
// cria um painel que contem o nosso desenho
DesenhandoLinhaMeio panel = new DesenhandoLinhaMeio();

// cria uma novo Frame(janela)


JFrame applicacao = new JFrame();

// adiciona o painel na janela


applicacao.add(panel ); // adiciona o painel no frame(janela)

// set (configura) o Frame(janela) para sair quando ela é fechada


applicacao.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
applicacao.setSize(250, 250); // set o tamanho da janela (frame)
applicacao.setVisible(true); // faz o janela (frame) visível
}
} // fim class DesenhandoLinhaMeiolTest
// Demonstra o desenho de um retangulo.

import java.awt.Graphics;
import javax.swing.JPanel;

public class DesenhaRetangulo extends JPanel


{

// inicia o desenho de umm retangulo


public void paintComponent(Graphics g )
{
super.paintComponent(g );

// retangulo ( pontoInicialX , pontoInicialY , largura, altura)


g.drawRect( 10 , 10 , 50 , 50 );

} // fim metodo paintComponent

} // fim class DesenhaRetangulo


// Classe testadora para o desenho do Circulo

import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class DesenhaRetanguloTeste


{
public static void main( String[] args )
{
DesenhaRetangulo painel = new DesenhaRetangulo();

JFrame aplicacao = new JFrame(); // cria um novo Frame (janela)

aplicacao.add( painel ); // adiciona o painel para a janela

aplicacao.setDefaultCloseOperation(JFrame .EXIT_ON_CLOSE );
aplicacao.setSize( 300, 300 ); // set o tamanho(size) da janela
aplicacao.setVisible( true ); // mostra a janela

} // fim main

} // fim class DesenhaRetanguloTeste


// Demonstra o desenho de um retangulo.

import java.awt.Graphics;
import javax.swing.JPanel;

public class DesenhaCirculo extends JPanel


{

// inicia o desenho de umm retangulo


public void paintComponent(Graphics g )
{
super.paintComponent(g );

// Oval que cabe dentro do retangulo ( pontoInicialX , pontoInicialY , largura, altura)


g.drawOval( 10 , 10 , 50 , 50 );

} // fim metodo paintComponent

} // fim class DesenhaCirculo


// Classe testadora para o desenho do Circulo

import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class DesenhaCirculoTeste


{
public static void main( String[] args )
{
DesenhaCirculo painel = new DesenhaCirculo();

JFrame aplicacao = new JFrame(); // cria um novo Frame (janela)

aplicacao.add( painel ); // adiciona o painel para a janela

aplicacao.setDefaultCloseOperation(JFrame .EXIT_ON_CLOSE );
aplicacao.setSize( 300, 300 ); // set o tamanho(size) da janela
aplicacao.setVisible( true ); // mostra a janela

} // fim main

} // fim class DesenhaCirculoTeste


Problema
• Desenhar janelas: com retângulos e circulos....
FIM!!!!