DIBUJAMOS CON EL J++ DE MICROSOFT UTILIZANDO LA WFJ

 

 

 

El código de la clase es el siguiente:

 

import com.ms.wfc.app.*;

import com.ms.wfc.core.*;

import com.ms.wfc.ui.*;

import com.ms.wfc.html.*;

 

 

 

public class Form1 extends Form

{

 

                //Declaro los puntos con los que vamos a dibujar

                //dos puntos para dibujar en el momento P1 y P2

                //y dos puntos para borrar el dibujo anterior P11 y P22

                public Point P1,P2,P11,P22;

                //Variables Booleanas, primer punto capturado y transparente

                boolean capturado,transparente;

                //variable para escojer el tipo de figura Línea, Rectangulo o Elipse

                int figura;

                //Dos variables del tipo color el color elegido y el de fondo

                Color color,color_fondo;

                //Un objeto gràfico.

                Graphics g;

               

                public Form1()

                {

                               //Inicializamos las variables y los puntos

                               P1= new Point();

                               P2= new Point();

                               P11= new Point();

                               P22= new Point();

                               P1.x=0;

                               P1.y=0;

                               P2.x=0;

                               P2.y=0;

                               P11.x=0;

                               P11.y=0;

                               P22.x=0;

                               P22.y=0;

                               //creamos el objeto gráfico

                               g=this.createGraphics();

                               //Al empezar la figura será una recta

                               figura=0;

                               //Las figuras al empezar son transparentes

                               transparente=true;

                               //El primer punto no está capturado

                               capturado=false;

                               //El color inicial es el negro

                               color= color.BLACK;

                               //El color de fondo inicial es el del formulario

                               color_fondo= Color.CONTROL;

                               //Se inicializa el formulario

                               initForm();                           

                }

 

                public void dispose()

                {

                               super.dispose();

                               components.dispose();

                }

 

                public void Form1_mouseDown(Object source, MouseEvent e)

                {

                               //capturamos el punto

                               capturado=true;

                               //recojemos los valores del primer punto en P1

                               P1.x=e.x;

                               P1.y=e.y;

                               //Escribimos la posición de los puntos

                               label1.setText(String.valueOf(e.x + " , " + e.y ).toString());

                }

 

                private void Form1_mouseMove(Object source, MouseEvent e)

                {

                               //Tomamos nota del punto donde está el ratón

                               P2.x=e.x;

                               P2.y=e.y;

                               label1.setText(String.valueOf(e.x + " , " + e.y ).toString());

                               //Si está capturado el primer punto dibujamos

                               if(capturado)

                               {

                                               dibujar();

                               P11.x=P1.x;

                               P11.y=P1.y;

                               P22.x=P2.x;

                               P22.y=P2.y;

                               }

                               //Tomamos nota de los puntos antiguos para poder redibujar.

                              

                }

 

                public void Form1_mouseUp(Object source, MouseEvent e)

                {

                               if(capturado)       

                               {

                               //Al dejar de pulsar fijamos la figura

                                               capturado=false;

                                               //tomamos nota del punto

                                               P2.x=e.x;

                                               P2.y=e.y;

                                               label1.setText(String.valueOf(e.x + " , " + e.y ).toString());

                                               //dibujamos

                                               dibujar();

                                               //Inicializamos las variables antiguas para que no molesten

                                               P1.x=0;

                                               P1.y=0;

                                               P2.x=0;

                                               P2.y=0;

                                               P11.x=0;

                                               P11.y=0;

                                               P22.x=0;

                                               P22.y=0;

                               }

                }

 

                private void button1_click(Object source, Event e)

                {

                               //Establecemos una línea

                               figura=0;

                }

 

                private void button2_click(Object source, Event e)

                {

                               //Establecemos un Rectángulo

                               figura=1;

                }

 

                private void button3_click(Object source, Event e)

                {

                               //Establecemos una Elipse

                               figura=2;

                }

 

                private void button4_click(Object source, Event e)

                {

                               //Establecemos el color rojo

                               color=Color.RED;

                }

 

                private void button5_click(Object source, Event e)

                {

                               //Establecemos el color verde

                               color=Color.GREEN;

                }

 

                private void button6_click(Object source, Event e)

                {

                               //Establecemos el color azul

                               color=Color.BLUE;

                }

 

                private void button7_click(Object source, Event e)

                {

                               //Establecemos el color amarillo

                               color=Color.YELLOW;

                }

 

                private void checkBox1_click(Object source, Event e)

                {

                               //Establecemos la opción transparente

                               transparente=!checkBox1.getChecked();

                }

 

                private void Form1_click(Object source, Event e)

                {

                              

                }

                private void dibujar()

                {

                               //Creamos el objeto gráfico

                               Graphics g = this.createGraphics();

                               //Establecemos el color de fondo

                               g.setBrush(new Brush(color));

                               //Establecemos el color de línea

                               g.setPen(new Pen(color));

                               //Según la variable figura

                               switch(figura)

                               {

                                              

                               case 0: //Caso de la línea

                                               //Borramos la línea anterior

                                               if (capturado){

                                                                              g.setPen(new Pen(color_fondo));

                                                                              g.drawLine(P11,P22);

                                                               }

                                               //dibujamos la figura.

                                                               g.setPen(new Pen(color));

                                                               g.drawLine(P1,P2);

                                               break; //Salimos de la función

                                              

                               case 1: //caso del rectángulo

                                               //Borramos el rectángulo anterior

                                               if(capturado){

                                                               g.setPen(new Pen(color_fondo));

                                                               g.setBrush(new Brush(color_fondo));

                                                               g.drawRect(P11.x,P11.y,P22.x-P11.x,P22.y-P11.y);

                                               }

                                               //Dibujamos el nuevo rectángulo

                                                               g.setPen(new Pen(color));

                                                               g.setBrush(new Brush(color));

                                                               //Si es transparente el fondo lo ponemos como estaba

                                                               if(transparente)g.setBrush(new Brush(color_fondo));

                                                               g.drawRect(P1.x,P1.y,P2.x-P1.x,P2.y-P1.y);

                                               break;

                              

                               case 2:  //caso de la elipse

                                               if(capturado){

                                                               g.setPen(new Pen(color_fondo));

                                                               g.setBrush(new Brush(color_fondo));

                                                               g.drawEllipse(P11.x,P11.y,P22.x-P11.x,P22.y-P11.y);    

                                               }

                                                               g.setBrush(new Brush(color));

                                                               if(transparente)g.setBrush(new Brush(color_fondo));

                                                               g.setPen(new Pen(color));

                                                               g.drawEllipse(P1.x,P1.y,P2.x-P1.x,P2.y-P1.y);                

                                                               break;

                               }

 

                }

 

 

 

                private void Form1_paint(Object source, PaintEvent e)

                {

                              

                }

 

                Container components = new Container();

                Button button1 = new Button();

                Button button2 = new Button();

                Button button3 = new Button();

                Button button4 = new Button();

                Button button5 = new Button();

                Button button6 = new Button();

                Button button7 = new Button();

                CheckBox checkBox1 = new CheckBox();

                Label label1 = new Label();

 

                private void initForm()

                {

                               this.setText("Dibujando en Java de Microsoft");

                               this.setAutoScaleBaseSize(new Point(5, 13));

                               this.setClientSize(new Point(454, 296));

                               this.addOnClick(new EventHandler(this.Form1_click));

                               this.addOnMouseDown(new MouseEventHandler(this.Form1_mouseDown));

                               this.addOnMouseMove(new MouseEventHandler(this.Form1_mouseMove));

                               this.addOnMouseUp(new MouseEventHandler(this.Form1_mouseUp));

                               this.addOnPaint(new PaintEventHandler(this.Form1_paint));

 

                               button1.setLocation(new Point(40, 8));

                               button1.setSize(new Point(56, 24));

                               button1.setTabIndex(0);

                               button1.setText("Línea");

                               button1.addOnClick(new EventHandler(this.button1_click));

 

                               button2.setLocation(new Point(112, 8));

                               button2.setSize(new Point(64, 24));

                               button2.setTabIndex(1);

                               button2.setText("Rectángulo");

                               button2.addOnClick(new EventHandler(this.button2_click));

 

                               button3.setLocation(new Point(192, 8));

                               button3.setSize(new Point(80, 24));

                               button3.setTabIndex(2);

                               button3.setText("Elipse");

                               button3.addOnClick(new EventHandler(this.button3_click));

 

                               button4.setLocation(new Point(40, 264));

                               button4.setSize(new Point(56, 24));

                               button4.setTabIndex(3);

                               button4.setText("Rojo");

                               button4.addOnClick(new EventHandler(this.button4_click));

 

                               button5.setLocation(new Point(112, 264));

                               button5.setSize(new Point(56, 24));

                               button5.setTabIndex(4);

                               button5.setText("Verde");

                               button5.addOnClick(new EventHandler(this.button5_click));

 

                               button6.setLocation(new Point(184, 264));

                               button6.setSize(new Point(48, 24));

                               button6.setTabIndex(5);

                               button6.setText("Azul");

                               button6.addOnClick(new EventHandler(this.button6_click));

 

                               button7.setLocation(new Point(248, 264));

                               button7.setSize(new Point(56, 24));

                               button7.setTabIndex(6);

                               button7.setText("Amarillo");

                               button7.addOnClick(new EventHandler(this.button7_click));

 

                               checkBox1.setLocation(new Point(312, 264));

                               checkBox1.setSize(new Point(88, 24));

                               checkBox1.setTabIndex(7);

                               checkBox1.setText("Opaco");

                               checkBox1.addOnClick(new EventHandler(this.checkBox1_click));

 

                               label1.setLocation(new Point(288, 8));

                               label1.setSize(new Point(160, 24));

                               label1.setTabIndex(8);

                               label1.setTabStop(false);

                               label1.setText("");

 

                               this.setNewControls(new Control[] {

                                                                                                              label1,

                                                                                                              checkBox1,

                                                                                                              button7,

                                                                                                              button6,

                                                                                                              button5,

                                                                                                              button4,

                                                                                                              button3,

                                                                                                              button2,

                                                                                                              button1});

                }

 

 

                public static void main(String args[])

                {

                               Application.run(new Form1());

                }

}