Exemplo de programa que desenha figuras geométricas numa janela.
Forma.java
import java.awt.*;Ponto.java
public abstract class Forma {
protected Graphics contextoGrafico;
public abstract void exibir();
public void setContextoGrafico(Graphics g) {
contextoGrafico = g;
}
}
public class Ponto extends Forma {Retangulo.java
private int tamanho;
private int x;
private int y;
public Ponto(int tamanho, int x, int y) {
this.tamanho = tamanho;
this.x = x;
this.y = y;
}
public void exibir() {
contextoGrafico.drawOval(x, y, tamanho, tamanho);
}
public int getTamanho() {
return tamanho;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
}
public class Retangulo extends Forma {Elipse.java
private Ponto pos;
private int w; //largura
private int h; //altura
public Retangulo(Ponto pos, int w, int h) {
this.pos = new Ponto(pos.getTamanho(), pos.getX(), pos.getY());
this.w = w;
this.h = h;
}
public void exibir() {
contextoGrafico.drawRect(pos.getX(), pos.getY(), w, h);
}
}
public class Elipse extends Forma {Poligono.java
private Ponto pos;
private int w; //largura
private int h; //altura
public Elipse(Ponto pos, int w, int h) {
this.pos = new Ponto(pos.getTamanho(), pos.getX(), pos.getY());
this.w = w;
this.h = h;
}
public void exibir() {
contextoGrafico.drawOval(pos.getX(), pos.getY(), w, h);
}
}
public class Poligono extends Forma {Tela.java
private int x[];
private int y[];
private int n;
public Poligono(int[] x, int[] y, int n) {
this.n = n;
this.x = x;
this.y = y;
}
public void exibir() {
contextoGrafico.drawPolygon(this.x, this.y, this.n);
}
}
import java.awt.*;ProgramaPrincipal.java
import java.util.ArrayList;
public class Tela extends Frame {
private ArrayListformas;
public Tela () {
formas = new ArrayList();
}
public void atualizar() {
update(getGraphics());
}
public void adicionar(Forma f) {
f.setContextoGrafico(getGraphics());
formas.add(f);
}
@Override
public void paint(Graphics arg0) {
for (int i = 0; i < formas.size(); i++){
formas.get(i).exibir();
}
}
}
public class ProgramaPrincipal {Testado na IDE Eclipse.
public static void main(String[] args) {
Tela tela = new Tela();
tela.setTitle("Primeira Janela");
tela.setSize(300, 300);
tela.setVisible(true);
Ponto p = new Ponto(10, 50, 50);
Retangulo r = new Retangulo(new Ponto(0, 100, 100), 40, 40);
Elipse e = new Elipse(new Ponto(10, 150, 150), 60, 40);
//triangulo
int trix[] = { 40, 100, 70};
int triy[] = { 260, 260, 200};
Poligono tri = new Poligono(trix, triy, 3);
//poligono de 5 lados
int polix[] = { 140, 120, 170, 240, 210};
int poliy[] = { 220, 260, 280, 260, 200};
Poligono poli = new Poligono(polix, poliy, 5);
tela.adicionar(p);
tela.adicionar(r);
tela.adicionar(e);
tela.adicionar(tri);
tela.adicionar(poli);
tela.atualizar();
}
}
Trabalho pedido com atividade da disciplina POO ministrado pelo prof. Gilzamir Gomes.
Nenhum comentário :
Postar um comentário