You are on page 1of 5

import java.math.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.

*;

public class DCirculo extends JFrame implements MouseListener {//qui declaramos la clase principal haciendo una herencia e implementando// private JTextField campoTexto,uno,dos,tres,cuatro;//aqui declaramos 5 campos de textos los que vamos a ocupar// private JPanel panel;// en esta parte declaramos un panel el en el cual se realizara el dibujo// private int x;//aqui declaramos las variables a utilizar donde se guardaran los resultados// private int y; private int x2; private int y2; private int contador; private int R; private int C; private int D; private double radio; private float A; private JLabel camp1;//en esta seccion declaramos las estiquetas a utlizar que seran 5 Jlabel// private JLabel camp2; private JLabel camp3; private JLabel camp4; private JLabel camp5;

public static void main(String[]args){

DCirculo marco=new DCirculo(); //creamos la ventana// marco.setSize(400,300); //definimos el tamao de la ventana// marco.crearGUI();//hacemos el grafico// marco.setVisible(true);//hacemos visibles el marco// } private void crearGUI(){//aqui crearemos el entorno grafico declarando el metodo// setDefaultCloseOperation(EXIT_ON_CLOSE); Container ventana=getContentPane (); //declaramos el contenedor// ventana.setLayout(new FlowLayout ());//utilizamos un flowLayout que ira acomodando la etiquetas y campos de texto como lo vayamos agreagndo ala ventana// panel=new JPanel(); //se crea un panel// panel.setPreferredSize(new Dimension (500,500)); //damos el tamao// camp1=new JLabel("centro"); // creamos las etiquetas y le ponemos el nombre y campo de texto y despues las agregamos a la ventana// campoTexto= new JTextField(10); camp2=new JLabel("circunferencia"); uno=new JTextField(10); camp3=new JLabel("diametro"); dos=new JTextField(8); camp4=new JLabel("area"); tres=new JTextField(10); panel.setBackground(Color.white); ventana.add(panel); panel.addMouseListener(this);//se declara el oyente // ventana.add(camp1);

ventana.add(campoTexto); ventana.add(camp2); ventana.add(uno); ventana.add(camp3); ventana.add(dos); ventana.add(camp4); ventana.add(tres);

public void mouseClicked(MouseEvent evento){//de claramos el evento a realizarse en este caso sera click// contador++; //utilizamos un contador el cual realizara la funcion de llevar el numero de click para realizar la accion// Graphics papel=panel.getGraphics();//entorno grafico// if(contador==1){//ponemos un condicional que va hacer el conteo de los click obviamente con ayuda del contador declarado// x=evento.getX();//guardamos los valores de cada variables// y=evento.getY(); papel.setColor(Color.red); papel.drawOval(x,y,5,5);//trazamos el primer punto poniendoles valores por defecto utilizando drawoval// campoTexto.setText("x= "+ x +" y="+ y);//en esta parte visualizamos en el ampo de texto la coordenada del centro// } else { if(contador==2){ //en esta parte ya cumplio la primera condicion para marcar el segundo punto//

x2=evento.getX();//declaramos la segunda oordenada asignando los valores// y2=evento.getY(); papel.setColor(Color.red); papel.drawOval(x2,y2,5,5); papel.setColor(Color.green); papel.drawLine(x,y,x2,y2);//aqui trazamos la linea o el radio con los dos pares de coordenadas// R=((x2-x)*(x2-x))+((y2-y)*(y2-y));//sacamos el radio haciendo una resta de las coordenadas pero solo en el eje de las x// radio=Math.sqrt(R);//utilizamos el comando math para sacar la raiz cuadrada// D=(int)radio*2;//se calcula el diametro y se le pone int entre parentesis para que lea el valor // papel.setColor(Color.orange); papel.drawOval(x-(int)radio,y-(int)radio,D,D);//en esta operacion se traza l circulo con las coordenasda// A=3.1416F*(R*R);//sacamos el area// C=(2*D)*(int)3.1416F;//calculamos la circunferencia// tres.setText(""+A);//mandamos a los campos de texto los resultados las operaciones// uno.setText(""+C); dos.setText(""+D);

} else{

panel.repaint();// en este apartado reinciamo el contador para poner en blanco el panel// contador=0; tres.setText("");// autmaticamente se ponen los campos de texto en blanco// uno.setText("");

dos.setText(""); campoTexto.setText(""); } } }

//declaramos los demas metos por que son clases abstractas y esto evita que nos marque error// public void mouseReleased(MouseEvent evento){

public void mousePressed(MouseEvent evento){ }

public void mouseExited(MouseEvent evento){ }

public void mouseEntered(MouseEvent evento){ }

You might also like