En el contexto del proceso de interacción persona-ordenador, la interfaz gráfica de usuario (IGU), es el artefacto tecnológico de un sistema interactivo que posibilita, a través del uso y la representación del lenguaje visual, una interacción amigable con un sistema informático.

La interfaz gráfica de usuario (en inglés Graphical User Interface, GUI) es un tipo de interfaz de usuario que utiliza un conjunto de imágenes y objetos gráficos (iconos, ventanas, tipografía) para representar la información y acciones disponibles en la interfaz. Habitualmente las acciones se realizan mediante manipulación directa para facilitar la interacción del usuario con la computadora.

Surge como evolución de la línea de comandos de los primeros sistemas operativos y es pieza fundamental en un entorno gráfico.

Como ejemplo de interfaz GUI podemos citar el escritorio o desktop del sistema operativo Windows y el entorno X-Window de Linux.

El desarrollo de los entornos gráficos, que permitieron que las personas pudieran acceder a un PC sin tener que pasar por el tortuoso proceso de tener que aprender a manejar un entorno bajo línea de comandos.

La interfaz gráfica de usuario es lo que tú y yo vemos cuando ejecutamos un programa en algún sistema operativo e interfaz gráfica, es decir, son las ventanas y los botones, los iconos, etc. En java, muchos applets y aplicaciones pueden desarrollarse explotando esta propiedad, esto se hace dentro del ambiente integrado de desarrollo de java cuando hemos abierto un archivo .java para la elaboración de algún proyecto (en concreto, me refiero a jbuilder). Ahí, facilmente, seleccionando la pestaña inferior design, creamos la interfaz arrastrando los botones y demás componentes de las barras de objetos que se encuentran en la parte superior del ambiente jbuilder.

_____________________________________________________________

Saludos compañeros, es mi primer aporte a esta web que me ha dado mucha ayuda en mi carrera y por lo cual he decidido publicar un codigo sobre una factura en modo applet. Espero y lo encuentren digno de analizar y basarse en él. Gracias por todo…’-

import java.awt.*; import java.applet.Applet;

public class cellmart extends Applet

	{
		String cliente,dir,col,rfc,ciudad,fecha,descr;
		int cp,tel,folio,cant;
		double Precio,preuni,sub,iva,total;

		double imp1,imp2,imp3,imp4,imp5,imp6,imp7;

		double n1=2100.0;
		double n2=600.0;
		double n3=350.0;
		double a1=2300.0;
		double a2=580.0;
		double a3=430.0;
		double p1=1500.0;
		double p2=800.0;
		double u1=1890.0;

		Label lblcliente=new Label(“CLIENTE”);
		Label lbldir=new Label(“DIRECCION”);
		Label lblcol=new Label(“COLONIA”);
		Label lblcp=new Label(“C.P.”);
		Label lblrfc=new Label(“R.F.C.”);
		Label lblciudad=new Label(“CIUDAD”);
		Label lblfecha=new Label(“FECHA”);
		Label lbltel=new Label(“TEL.”);
		Label lblfolio=new Label(“FOLIO”);
		Label lblcant=new Label(“CANT.”);
		Label lbldescr=new Label(“DESCRIPCION”);
		Label lblpreuni=new Label(“P.UNITARIO”);
		Label lblimpor=new Label(“IMPORTE”);
		Label lblsub=new Label(“SUBTOTAL”);
		Label lbliva=new Label(“I.V.A.”);
		Label lbltotal=new Label(“TOTAL”);

		Text Field txtcliente=new Text Field(“”);
		Text Field txtdir=new Text Field(“”);
		Text Field txtcol=new Text Field(“”);
		Text Field txtcp=new Text Field(“”);
		Text Field txtrfc=new Text Field(“”);
		Text Field txtciudad=new Text Field(“”);
		Text Field txtfecha=new Text Field(“”);
		Text Field txttel=new Text Field(“”);
		Text Field txtfolio=new Text Field(“46686″);
		//-
		Text Field txtcant1=new Text Field();
		Text Field txtcant2=new Text Field();
		Text Field txtcant3=new Text Field();
		Text Field txtcant4=new Text Field();
		Text Field txtcant5=new Text Field();
		Text Field txtcant6=new Text Field();
		Text Field txtcant7=new Text Field();	
		//-			
		Text Field txtpreuni1=new Text Field(“0.0″);
		Text Field txtpreuni2=new Text Field(“0.0″);
		Text Field txtpreuni3=new Text Field(“0.0″);
		Text Field txtpreuni4=new Text Field(“0.0″);
		Text Field txtpreuni5=new Text Field(“0.0″);
		Text Field txtpreuni6=new Text Field(“0.0″);
		Text Field txtpreuni7=new Text Field(“0.0″);
		//-
		Text Field txtimpor1=new Text Field(“0.0″);
		Text Field txtimpor2=new Text Field(“0.0″);
		Text Field txtimpor3=new Text Field(“0.0″);
		Text Field txtimpor4=new Text Field(“0.0″);
		Text Field txtimpor5=new Text Field(“0.0″);
		Text Field txtimpor6=new Text Field(“0.0″);
		Text Field txtimpor7=new Text Field(“0.0″);
		//-
		Text Field txtsub=new Text Field(“0.0″);
		Text Field txtiva=new Text Field(“0.0″);
		Text Field txttotal=new Text Field(“0.0″);

		Choice chodescr1=new Choice();
		Choice chodescr2=new Choice();
		Choice chodescr3=new Choice();
		Choice chodescr4=new Choice();
		Choice chodescr5=new Choice();
		Choice chodescr6=new Choice();
		Choice chodescr7=new Choice();


		public void init()
		{
			setBackground(Color.WHITE);
			setLayout(null);

			chodescr1.addItem(“--ESCOGER PRODUCTO—”);
			chodescr1.addItem(“NIKE R9 Zapatos”);
			chodescr1.addItem(“NIKE Balón Geo-Merlin”);
			chodescr1.addItem(“NIKE Playera Total-90″);
			chodescr1.addItem(“ADIDAS Predator TRXSG Zapatos”);
			chodescr1.addItem(“ADIDAS Balón Fevernova”);
			chodescr1.addItem(“ADIDAS Playera Beckham”);
			chodescr1.addItem(“PUMA Tennis”);
			chodescr1.addItem(“PUMA Sudadera”);
			chodescr1.addItem(“Ulhsport Nedved Zapatos”);

			chodescr2.addItem(“--ESCOGER PRODUCTO—”);
			chodescr2.addItem(“NIKE R9 Zapatos”);
			chodescr2.addItem(“NIKE Balón Geo-Merlin”);
			chodescr2.addItem(“NIKE Playera Total-90″);
			chodescr2.addItem(“ADIDAS Predator TRXSG Zapatos”);
			chodescr2.addItem(“ADIDAS Balón Fevernova”);
			chodescr2.addItem(“ADIDAS Playera Beckham”);
			chodescr2.addItem(“PUMA Tennis”);
			chodescr2.addItem(“PUMA Sudadera”);
			chodescr2.addItem(“Ulhsport Nedved Zapatos”);

			chodescr3.addItem(“--ESCOGER PRODUCTO—”);
			chodescr3.addItem(“NIKE R9 Zapatos”);
			chodescr3.addItem(“NIKE Balón Geo-Merlin”);
			chodescr3.addItem(“NIKE Playera Total-90″);
			chodescr3.addItem(“ADIDAS Predator TRXSG Zapatos”);
			chodescr3.addItem(“ADIDAS Balón Fevernova”);
			chodescr3.addItem(“ADIDAS Playera Beckham”);
			chodescr3.addItem(“PUMA Tennis”);
			chodescr3.addItem(“PUMA Sudadera”);
			chodescr3.addItem(“Ulhsport Nedved Zapatos”);

			chodescr4.addItem(“--ESCOGER PRODUCTO—”);
			chodescr4.addItem(“NIKE R9 Zapatos”);
			chodescr4.addItem(“NIKE Balón Geo-Merlin”);
			chodescr4.addItem(“NIKE Playera Total-90″);
			chodescr4.addItem(“ADIDAS Predator TRXSG Zapatos”);
			chodescr4.addItem(“ADIDAS Balón Fevernova”);
			chodescr4.addItem(“ADIDAS Playera Beckham”);
			chodescr4.addItem(“PUMA Tennis”);
			chodescr4.addItem(“PUMA Sudadera”);
			chodescr4.addItem(“Ulhsport Nedved Zapatos”);

			chodescr5.addItem(“--ESCOGER PRODUCTO—”);
			chodescr5.addItem(“NIKE R9 Zapatos”);
			chodescr5.addItem(“NIKE Balón Geo-Merlin”);
			chodescr5.addItem(“NIKE Playera Total-90″);
			chodescr5.addItem(“ADIDAS Predator TRXSG Zapatos”);
			chodescr5.addItem(“ADIDAS Balón Fevernova”);
			chodescr5.addItem(“ADIDAS Playera Beckham”);
			chodescr5.addItem(“PUMA Tennis”);
			chodescr5.addItem(“PUMA Sudadera”);
			chodescr5.addItem(“Ulhsport Nedved Zapatos”);

			chodescr6.addItem(“--ESCOGER PRODUCTO—”);
			chodescr6.addItem(“NIKE R9 Zapatos”);
			chodescr6.addItem(“NIKE Balón Geo-Merlin”);
			chodescr6.addItem(“NIKE Playera Total-90″);
			chodescr6.addItem(“ADIDAS Predator TRXSG Zapatos”);
			chodescr6.addItem(“ADIDAS Balón Fevernova”);
			chodescr6.addItem(“ADIDAS Playera Beckham”);
			chodescr6.addItem(“PUMA Tennis”);
			chodescr6.addItem(“PUMA Sudadera”);
			chodescr6.addItem(“Ulhsport Nedved Zapatos”);

			chodescr7.addItem(“--ESCOGER PRODUCTO—”);
			chodescr7.addItem(“NIKE R9 Zapatos”);
			chodescr7.addItem(“NIKE Balón Geo-Merlin”);
			chodescr7.addItem(“NIKE Playera Total-90″);
			chodescr7.addItem(“ADIDAS Predator TRXSG Zapatos”);
			chodescr7.addItem(“ADIDAS Balón Fevernova”);
			chodescr7.addItem(“ADIDAS Playera Beckham”);
			chodescr7.addItem(“PUMA Tennis”);
			chodescr7.addItem(“PUMA Sudadera”);
			chodescr7.addItem(“Ulhsport Nedved Zapatos”);

			lblcliente.setBounds(10,80,80,22);
			txtcliente.setBounds(90,80,420,22);

			lbldir.setBounds(10,103,80,22);
			txtdir.setBounds(90,103,420,22);

			lblcol.setBounds(10,126,80,22);
			txtcol.setBounds(90,126,100,22);

			lblrfc.setBounds(10,149,80,22);
			txtrfc.setBounds(90,149,100,22);

			lblciudad.setBounds(220,126,80,22);
			txtciudad.setBounds(280,126,80,22);

			lblcp.setBounds(390,126,80,22);
			txtcp.setBounds(430,126,80,22);

			lbltel.setBounds(220,149,80,22);
			txttel.setBounds(280,149,80,22);

			lblfolio.setBounds(540,80,80,22);
			txtfolio.setBounds(590,80,80,22);
			txtfolio.setEditable(false);

			lblfecha.setBounds(540,103,80,22);
			txtfecha.setBounds(590,103,80,22);

			lblcant.setBounds(90,198,80,22);
			txtcant1.setBounds(90,220,80,22);
			txtcant2.setBounds(90,243,80,22);
			txtcant3.setBounds(90,266,80,22);
			txtcant4.setBounds(90,289,80,22);
			txtcant5.setBounds(90,311,80,22);
			txtcant6.setBounds(90,334,80,22);
			txtcant7.setBounds(90,357,80,22);

			lbldescr.setBounds(171,198,250,22);
			chodescr1.setBounds(171,220,250,22);
			chodescr2.setBounds(171,243,250,22);
			chodescr3.setBounds(171,266,250,22);
			chodescr4.setBounds(171,289,250,22);
			chodescr5.setBounds(171,311,250,22);
			chodescr6.setBounds(171,334,250,22);
			chodescr7.setBounds(171,357,250,22);

			lblpreuni.setBounds(422,198,80,22);
			txtpreuni1.setBounds(422,220,80,22);
			txtpreuni2.setBounds(422,243,80,22);
			txtpreuni3.setBounds(422,266,80,22);
			txtpreuni4.setBounds(422,289,80,22);
			txtpreuni5.setBounds(422,311,80,22);
			txtpreuni6.setBounds(422,334,80,22);
			txtpreuni7.setBounds(422,357,80,22);

			txtpreuni1.setEditable(false);
			txtpreuni2.setEditable(false);
			txtpreuni3.setEditable(false);
			txtpreuni4.setEditable(false);
			txtpreuni5.setEditable(false);
			txtpreuni6.setEditable(false);
			txtpreuni7.setEditable(false);

			lblimpor.setBounds(503,198,80,22);
			txtimpor1.setBounds(503,220,80,22);
			txtimpor2.setBounds(503,243,80,22);
			txtimpor3.setBounds(503,266,80,22);
			txtimpor4.setBounds(503,289,80,22);
			txtimpor5.setBounds(503,311,80,22);
			txtimpor6.setBounds(503,334,80,22);
			txtimpor7.setBounds(503,357,80,22);

			txtimpor1.setEditable(false);
			txtimpor2.setEditable(false);
			txtimpor3.setEditable(false);
			txtimpor4.setEditable(false);
			txtimpor5.setEditable(false);
			txtimpor6.setEditable(false);
			txtimpor7.setEditable(false);

			lblsub.setBounds(422,385,80,22);
			txtsub.setBounds(503,385,80,22);
			txtsub.setEditable(false);

			lbliva.setBounds(422,408,80,22);
			txtiva.setBounds(503,408,80,22);
			txtiva.setEditable(false);

			lbltotal.setBounds(422,431,80,22);
			txttotal.setBounds(503,431,80,22);
			txttotal.setEditable(false);

			add(txtcliente);
			add(txtdir);
			add(txtcol);
			add(txtrfc);	
			add(txtciudad);	
			add(txttel);
			add(txtcp);	
			add(txtfolio);
			add(txtfecha);
			//-
			add(txtcant1);
			add(txtcant2);
			add(txtcant3);
			add(txtcant4);
			add(txtcant5);
			add(txtcant6);
			add(txtcant7);
			//-
			add(txtpreuni1);
			add(txtpreuni2);
			add(txtpreuni3);
			add(txtpreuni4);
			add(txtpreuni5);
			add(txtpreuni6);
			add(txtpreuni7);
			//-
			add(txtimpor1);
			add(txtimpor2);
			add(txtimpor3);
			add(txtimpor4);
			add(txtimpor5);
			add(txtimpor6);
			add(txtimpor7);
			//-
			add(txtsub);
			add(txtiva);
			add(txttotal);

			add(chodescr1);
			add(chodescr2);
			add(chodescr3);
			add(chodescr4);
			add(chodescr5);
			add(chodescr6);
			add(chodescr7);

			add(lblcliente);
			add(lbldir);
			add(lblcol);
			add(lblrfc);
			add(lblciudad);
			add(lbltel);
			add(lblcp);
			add(lblfolio);
			add(lblfecha);
			add(lblcant);
			add(lbldescr);
			add(lblpreuni);
			add(lblimpor);
			add(lblsub);
			add(lbliva);
			add(lbltotal);
		}//metodo init


	public boolean action(Event evt,Object obj)
		{
			if(evt.target==chodescr1)
							{
								int op=chodescr1.getSelectedIndex();

								switch(op)
									{
										case 0:	Precio=n1;
												break;

										case 1: Precio=n2;
												break;

										case 2: Precio=n3;
												break;

										case 3: Precio=a1;
												break;

										case 4: Precio=a2;
												break;

										case 5: Precio=a3;
												break;

										case 6: Precio=p1;
												break;

										case 7: Precio=p2;
												break;

										case 8: Precio=u1;
												break;

										default:Precio=0.0;
									}
									txtpreuni1.setText(Double.toString(Precio));
									cant=Integer.parseInt(txtcant1.getText());
									preuni=Double.parseDouble(txtpreuni1.getText());
									imp1=cant*preuni;
									txtimpor1.setText(Double.toString(imp1));
							}

						if(evt.target==chodescr2)
							{
								int op=chodescr2.getSelectedIndex();

								switch(op)
									{
										case 0:	Precio=n1;
												break;

										case 1: Precio=n2;
												break;

										case 2: Precio=n3;
												break;

										case 3: Precio=a1;
												break;

										case 4: Precio=a2;
												break;

										case 5: Precio=a3;
												break;

										case 6: Precio=p1;
												break;

										case 7: Precio=p2;
												break;

										case 8: Precio=u1;
												break;

										default:Precio=0.0;
									}
									txtpreuni2.setText(Double.toString(Precio));
									cant=Integer.parseInt(txtcant2.getText());
									preuni=Double.parseDouble(txtpreuni2.getText());
									imp2=cant*preuni;
									txtimpor2.setText(Double.toString(imp2));
							}

						if(evt.target==chodescr3)
							{
								int op=chodescr3.getSelectedIndex();

								switch(op)
									{
										case 0:	Precio=n1;
												break;

										case 1: Precio=n2;
												break;

										case 2: Precio=n3;
												break;

										case 3: Precio=a1;
												break;

										case 4: Precio=a2;
												break;

										case 5: Precio=a3;
												break;

										case 6: Precio=p1;
												break;

										case 7: Precio=p2;
												break;

										case 8: Precio=u1;
												break;

										default:Precio=0.0;
									}
									txtpreuni3.setText(Double.toString(Precio));
									cant=Integer.parseInt(txtcant3.getText());
									preuni=Double.parseDouble(txtpreuni3.getText());
									imp3=cant*preuni;
									txtimpor3.setText(Double.toString(imp3));
							}

						if(evt.target==chodescr4)
							{
								int op=chodescr4.getSelectedIndex();

								switch(op)
									{
										case 0:	Precio=n1;
												break;

										case 1: Precio=n2;
												break;

										case 2: Precio=n3;
												break;

										case 3: Precio=a1;
												break;

										case 4: Precio=a2;
												break;

										case 5: Precio=a3;
												break;

										case 6: Precio=p1;
												break;

										case 7: Precio=p2;
												break;

										case 8: Precio=u1;
												break;

										default:Precio=0.0;
									}
									txtpreuni4.setText(Double.toString(Precio));
									cant=Integer.parseInt(txtcant4.getText());
									preuni=Double.parseDouble(txtpreuni4.getText());
									imp4=cant*preuni;
									txtimpor4.setText(Double.toString(imp4));
							}

						if(evt.target==chodescr5)
							{
								int op=chodescr5.getSelectedIndex();

								switch(op)
									{
										case 0:	Precio=n1;
												break;

										case 1: Precio=n2;
												break;

										case 2: Precio=n3;
												break;

										case 3: Precio=a1;
												break;

										case 4: Precio=a2;
												break;

										case 5: Precio=a3;
												break;

										case 6: Precio=p1;
												break;

										case 7: Precio=p2;
												break;

										case 8: Precio=u1;
												break;

										default:Precio=0.0;
									}
									txtpreuni5.setText(Double.toString(Precio));
									cant=Integer.parseInt(txtcant5.getText());
									preuni=Double.parseDouble(txtpreuni5.getText());
									imp5=cant*preuni;
									txtimpor5.setText(Double.toString(imp5));
							}

						if(evt.target==chodescr6)
							{
								int op=chodescr6.getSelectedIndex();

								switch(op)
									{
										case 0:	Precio=n1;
												break;

										case 1: Precio=n2;
												break;

										case 2: Precio=n3;
												break;

										case 3: Precio=a1;
												break;

										case 4: Precio=a2;
												break;

										case 5: Precio=a3;
												break;

										case 6: Precio=p1;
												break;

										case 7: Precio=p2;
												break;

										case 8: Precio=u1;
												break;

										default:Precio=0.0;
									}
									txtpreuni6.setText(Double.toString(Precio));
									cant=Integer.parseInt(txtcant6.getText());
									preuni=Double.parseDouble(txtpreuni6.getText());
									imp6=cant*preuni;
									txtimpor6.setText(Double.toString(imp6));
							}

						if(evt.target==chodescr7)
							{
								int op=chodescr7.getSelectedIndex();

								switch(op)
									{
										case 0:	Precio=n1;
												break;

										case 1: Precio=n2;
												break;

										case 2: Precio=n3;
												break;

										case 3: Precio=a1;
												break;

										case 4: Precio=a2;
												break;

										case 5: Precio=a3;
												break;

										case 6: Precio=p1;
												break;

										case 7: Precio=p2;
												break;

										case 8: Precio=u1;
												break;

										default:Precio=0.0;
									}
									txtpreuni7.setText(Double.toString(Precio));
									cant=Integer.parseInt(txtcant7.getText());
									preuni=Double.parseDouble(txtpreuni7.getText());
									imp7=cant*preuni;
									txtimpor7.setText(Double.toString(imp7));
							}
						imp1=Double.parseDouble(txtimpor1.getText());
						imp2=Double.parseDouble(txtimpor2.getText());
						imp3=Double.parseDouble(txtimpor3.getText());
						imp4=Double.parseDouble(txtimpor4.getText());
						imp5=Double.parseDouble(txtimpor5.getText());
						imp6=Double.parseDouble(txtimpor6.getText());
						imp7=Double.parseDouble(txtimpor7.getText());

						sub=imp1+imp2+imp3+imp4+imp5+imp6+imp7;
						txtsub.setText(Double.toString(sub));

						iva=sub*0.15;
						txtiva.setText(Double.toString(iva));

						total=sub+iva;
						txttotal.setText(Double.toString(total));

						return false;
		}//metodo action

	}//clase cellmart

Google