Viruz Blog
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

Áreas de figuras

Ir abajo

Áreas de figuras Empty Áreas de figuras

Mensaje  Admin (Viruz) Mar Dic 18, 2012 12:49 am

Después de un largo y tedioso proceso de actualizaciones al Blog, volvemos a la temática de la cual fue creado y es ofrecerles una ayuda en los programas para darles una imaginación para los que elaboren en el lenguaje Java.

Se han visto demasiados ejemplos de figuras en el cual hemos podido otorgar diferentes funciones a las mismas como: relleno, contornos, propiedades, tamaño, entre otras.

Aunque hemos olvidado uno de los puntos importantes al crear una figura que es el valor del área, para ello se dibujará un triangulo y mediante una etiqueta en la parte inferior de la ventana nos indicará el valor del área de dicha figura automáticamente.
Imagen
[Tienes que estar registrado y conectado para ver esa imagen]
Lo que se necesita conocer

  • Propiedades de un círculo
  • Figura en cursor

¿Como funciona el Programa?

  1. Primeramente declaramos las variables de ancho y largo al igual que las variables donde se empezará a dibujar (x1 y y1), después asignaremos sus respectivos métodos set() y get() a cada uno.
  2. Ocuparemos 3 eventos de ratón los que se utilizarán son los siguientes: mousePressed() , mouseReleased() y mouseDragged(). (en el código viene la explicación de cada uno de ellos)
  3. Para sacar el área del triangulo lo haremos mediante una condicional if() el cual se pregunta si las medidas del ancho y largo son mayores que 0 asignaremos a la etiqueta el valor sacado de la variable area.
  4. El área se saca mediante una multiplicación area = largo * ancho; y se convierte el valor a String con el método valueOf().
Código

Clase Main
Código:

/**
 *
 * @author ViRuZ
 */
import javax.swing.JFrame;

public class Main {
    public static void main(String[] args) {
        DibujoRectangulo temp= new DibujoRectangulo();
        temp.setVisible(true);
        temp.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}
Clase DibujoRectangulo

/**
*
* @author ViRuZ
*/
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class DibujoRectangulo extends JFrame {
private Container contenedor;
private JLabel etiqueta;
private int x1;
private int ancho;
private int y1;
private int largo;
private int area;
private Panel miPanel;

public DibujoRectangulo() {
super("Viruz Blog: Dibujar Rectángulo");
//getContentPane es el panel principal del frame
contenedor = getContentPane();
etiqueta = new JLabel("Área");
miPanel = new Panel();
setSize(500, 500);
miPanel.setBackground(Color.white);

//agregamos la etiqueta y el panel
contenedor.add(etiqueta, BorderLayout.SOUTH);
contenedor.add(miPanel, BorderLayout.CENTER);

addEventos();
}

private void addEventos() {
//mousePressed maneja el evento cuando se oprime el botón del ratón
addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
x1 = e.getX();
y1 = e.getY();
ancho = 1;
largo = 1;

//indica atu puntero donde empieza a dibujar posicion X y Y
miPanel.setX1(x1 - 2);
miPanel.setY1(y1 - 27);
miPanel.setAncho(ancho);
miPanel.setLargo(largo);

etiqueta.setText("Área: ");
miPanel.dibujar();
}
});

//mouseReleased maneja el evento cuando se suelta el botón del ratón
//depues de haber arrastrado.
addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent evento) {
largo = evento.getX() - x1;
ancho = evento.getY() - y1;

miPanel.setAncho(ancho);
miPanel.setLargo(largo);

miPanel.dibujar();
}
});

//mouseDragged maneja el evento cuando el usuario arrastra el ratón con el
//botón oprimido.
addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseDragged(MouseEvent e) {
largo = e.getX()- x1;
ancho = e.getY()- y1;
area = largo * ancho;

miPanel.setAncho(ancho);
miPanel.setLargo(largo);

if (ancho < 0 || largo < 0)
etiqueta.setText("Área: ");
else
etiqueta.setText("Área: " + String.valueOf(area));

miPanel.dibujar();
}
});
}
}


Clase Panel

/**
*
* @author ViRuZ
*/
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;

public class Panel extends JPanel {
private int x1;
private int ancho;
private int y1;
private int largo;

@Override
public void paintComponent(Graphics g) {
//super.paintComponent hace que vuelva a pintar el rectangulo
super.paintComponent(g);

g.setColor(Color.RED);
g.fillRect(x1, y1, largo, ancho);
}

public void dibujar() {
repaint();
}

//*MÉTODOS set asginan Valores Y get Regresan Valores
//Sirven para asignar nuevos valores cuando se dibujan varias veces.
public void setX1(int x1) {
this.x1 = x1;
}

public void setAncho(int ancho) {
this.ancho = ancho;
}

public void setY1(int y1) {
this.y1 = y1;
}

public void setLargo(int largo) {
this.largo = largo;
}
}


Descarga el código
Rectángulo con área
Autor: Viruz study
Enlace: Áreas de figuras con Java
Admin (Viruz)
Admin (Viruz)
Admin

Mensajes : 148
Fecha de inscripción : 23/09/2012
Edad : 35
Localización : Desktop

https://viruz.foroactivo.mx

Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.