miércoles, 27 de mayo de 2009

PANELES


import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class DemoPanel extends JFrame {
Container contenedor;
private JPanel panelinicio;
private JPanel panelfin;
private JButton [][] botones;
private JLabel [][] texto;
private JPanel panelcampo;
private JPanel panelcampo1;
private JTextField[][] campo;
private JTextField[][] campo1;

public DemoPanel(){
botones= new JButton[2][2];
contenedor= getContentPane();
panelinicio= new JPanel(new GridLayout(2,2));
String [] nombres = {"enero","febrero","marzo","abril"};

int k=0;
for(int i=0; i<2; i++){
for(int j=0; j<2; j++){
//for(int i=0; i //for(int j=0; j<3; j++){
//botones[i][j]= new JButton("boton"+i+" "+j);
botones[i][j]= new JButton(nombres [k]);
k +=1;
panelinicio.add(botones[i][j]);
}
}
contenedor.add(panelinicio,BorderLayout.NORTH);
setSize(425,150);
setVisible(true);
texto= new JLabel[5][5];
panelfin= new JPanel(new GridLayout(5,5,10,10));
for(int i=0; i<5; i++){
for(int j=0; j<5; j++){
texto[i][j]= new JLabel("texto"+i+" "+j);
panelfin.add(texto[i][j]);


}
contenedor.add(panelfin,BorderLayout.SOUTH);
}
campo= new JTextField[4][3];
panelcampo= new JPanel(new GridLayout(4,3,5,5));
for(int i=0; i<4; i++){
for(int j=0; j<3; j++){
campo[i][j]= new JTextField("campo"+i+" "+j);
panelcampo.add(campo[i][j]);

}
contenedor.add(panelcampo,BorderLayout.WEST);
}
campo1= new JTextField[2][4];
panelcampo1= new JPanel(new GridLayout(4,2,5,5));
for(int i=0; i<2; i++){
for(int j=0; j<4; j++){
campo1[i][j]= new JTextField("campo1"+i+" "+j);
panelcampo1.add(campo1[i][j]);

}
contenedor.add(panelcampo1,BorderLayout.EAST);
}
}

public static void main(String args[]){
DemoPanel aplicacion= new DemoPanel();
aplicacion.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

}

lunes, 25 de mayo de 2009

SENOIDAL, COSENOIDAL, Y RECTA


import java.applet.Applet;
import java.awt.*;
public class Varias extends Applet {
public void paint(Graphics g){
double m=1;
int a=1;
int b=1;
g.drawString("f(x)", 250, 475);
g.drawString("f (seno)", 410, 260);
g.drawString("f(coseno)", 410, 170);
g.drawString("Ec.de la recta", 120, 100);
g.drawLine(40, 40, 40, 450);
g.drawLine(20, 270, 450, 270);
g.setColor(Color.ORANGE);

for(int i=0;i<360; i=i+2)
{
int l=a*i+b;

int k=(int) (265 - 100*(Math.sin(l*3.1416/180)));
k= k*(int)m;
int n=(int) (265 - 100*(Math.cos(l*3.1416/180)));
int o=a*i+b;

g.fillOval( 38 + i,k,6,6);
g.fillOval( 38 + i,n,6,6);
g.fillOval( a*(38 + i)+b,(int) 265-(a*i)+b,6,6);
}


g.setColor(Color.black);
g.drawLine(40, 165, 398, 165);
g.drawLine(40, 370, 398, 370);
g.drawLine(131, 165, 131, 370);
g.drawLine(221, 165, 221, 370);
g.drawLine(311, 165, 311, 370);
g.drawLine(401, 165, 401, 370);
g.setColor(Color.BLACK);
g.drawString("-1", 30, 370);
g.drawString("0", 30, 270);
g.drawString("1", 30, 165);
g.drawString("¶/2", 115, 280);
g.drawString("¶", 205, 280);
g.drawString("3¶/2", 285, 280);
g.drawString("2¶", 405, 280);
g.drawLine(40, 40, 35, 55);
g.drawLine(35, 55, 45, 55);
g.drawLine(45, 55, 40, 40);
g.drawLine(450, 270, 425, 265);
g.drawLine(425, 265, 425, 275);
g.drawLine(425, 275, 450, 270);
g.setColor(Color.BLUE);
g.drawString("x", 460, 270);
g.drawString("Y-f(x)", 25, 35);
int ymax=this.getHeight();
int xmax=this.getWidth();
this.setSize(600, 500);
}
}

SENOIDAL


import java.applet.Applet;
import java.awt.*;
public class Seno extends Applet {
public void paint(Graphics g){
g.drawString("f(x)=Sen(x)",225, 75);
g.drawLine(40, 40, 40, 450);
g.drawLine(35, 270, 450, 270);
g.setColor(Color.MAGENTA);
for(int i=0; i<360; i=i+2)
{
g.fillOval( 38 + i,(int) (265 - 100*(Math.sin(i*3.1416/180))),8, 5);
}
g.setColor(Color.BLACK);
g.drawLine(40,165, 398, 165);
g.drawLine(40,370,398,370);
g.drawLine(131,165, 131, 370);
g.drawLine(221,165,221,370);
g.drawLine(311,165, 311, 370);
g.drawLine(401,165,401,370);
g.setColor(Color.MAGENTA);
g.drawString("-1", 30, 370);
g.drawString("0", 30, 270);
g.drawString("1", 30, 165);
g.drawString("¶/2", 115, 280);
g.drawString("¶", 205, 280);
g.drawString("3¶/2", 285, 280);
g.drawString("2¶", 405, 280);
g.drawLine(40, 40, 35, 55);
g.drawLine(35, 55, 45, 55);
g.drawLine(45, 55, 40, 40);
g.drawLine(450, 270, 425, 265);
g.drawLine(425, 265, 425, 275);
g.drawLine(425, 275, 450, 270);
g.setColor(Color.BLUE);
g.drawString("X", 460, 270);
g.drawString("Y-f(x)", 25, 35);
int ymax=this.getHeight();
int xmax=this.getWidth();
this.setSize(600, 500);
} }

miércoles, 20 de mayo de 2009

CICLO DE VIDA

Cuando un applet se inicia, se llaman en este orden a los siguientes métodos;

*init: Suele contener instrucciones para inicializar el applet.
*start: Como init, se suele usar para inicializar, pero con la diferencia de que este método también se llama cuando se reinicia un applet.
*paint: Se encarga de mostrar el contenido del applet. Se ejecuta cada vez que se tenga que redibujar.

Para terminar la ejecución o pausarse se llama a los siguientes métodos:

*stop: Suspende la ejecución del programa. Se llama cuando el applet se vuelve *temporalmente invisible.
*destroy: Cuando no se va a necesitar más el applet. Se usa para liberar recursos.

EJEMPLOS:
Applet TicTacToe.
Applet DrawTest.
Applet BarChart.
Applet Animator.
Applet ArcTest.
Applet Blink.
Applet Clock.
Applet GraphicsTest.
Applet ImageMap.
Applet MoleculeViewer.
Applet Zloden.

mruv y mruv en un applet

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Matriz Vo = new Matriz(1,3);
double aux = Double.parseDouble(jTextField8.getText());
Vo.matriz[0][0]= aux;
aux= Double.parseDouble(jTextField1.getText());
Vo.matriz[0][1]= aux;
aux= Double.parseDouble(jTextField10.getText());
Vo.matriz[0][2]= aux;

double t = Double.parseDouble(jTextField2.getText());

Matriz Xo = new Matriz(1,3);
aux = Double.parseDouble(jTextField9.getText());
Xo.matriz[0][0]= aux;
aux= Double.parseDouble(jTextField3.getText());
Xo.matriz[0][1]= aux;
aux= Double.parseDouble(jTextField11.getText());
Xo.matriz[0][2]= aux;

jTextArea1.setText(Xo.suma(Vo.multiplicaEscalar(t)).imprimir());
}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Matriz Vo = new Matriz(1,3);
double aux = Double.parseDouble(jTextField4.getText());
Vo.matriz[0][0]= aux;
aux= Double.parseDouble(jTextField12.getText());
Vo.matriz[0][1]= aux;
aux= Double.parseDouble(jTextField13.getText());
Vo.matriz[0][2]= aux;

double t = Double.parseDouble(jTextField5.getText());

Matriz a = new Matriz(1,3);
aux = Double.parseDouble(jTextField7.getText());
a.matriz[0][0]= aux;
aux= Double.parseDouble(jTextField16.getText());
a.matriz[0][1]= aux;
aux= Double.parseDouble(jTextField17.getText());
a.matriz[0][2]= aux;

Matriz Xo = new Matriz(1,3);
aux = Double.parseDouble(jTextField6.getText());
Xo.matriz[0][0]= aux;
aux= Double.parseDouble(jTextField14.getText());
Xo.matriz[0][1]= aux;
aux= Double.parseDouble(jTextField15.getText());
Xo.matriz[0][2]= aux;

jTextArea3.setText(Xo.suma(Vo.multiplicaEscalar(t)).suma(a.multiplicaEscalar(t*t).multiplicaEscalar(0.5)).imprimir());
}

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Matriz Vo = new Matriz(1,3);
double aux = Double.parseDouble(jTextField4.getText());
Vo.matriz[0][0]= aux;
aux= Double.parseDouble(jTextField12.getText());
Vo.matriz[0][1]= aux;
aux= Double.parseDouble(jTextField13.getText());
Vo.matriz[0][2]= aux;

double t = Double.parseDouble(jTextField5.getText());

Matriz a = new Matriz(1,3);
aux = Double.parseDouble(jTextField7.getText());
a.matriz[0][0]= aux;
aux= Double.parseDouble(jTextField16.getText());
a.matriz[0][1]= aux;
aux= Double.parseDouble(jTextField17.getText());
a.matriz[0][2]= aux;

Matriz Xo = new Matriz(1,3);
aux = Double.parseDouble(jTextField6.getText());
Xo.matriz[0][0]= aux;
aux= Double.parseDouble(jTextField14.getText());
Xo.matriz[0][1]= aux;
aux= Double.parseDouble(jTextField15.getText());
Xo.matriz[0][2]= aux;

jTextArea2.setText(Vo.suma(a.multiplicaEscalar(t)).imprimir());
}

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Matriz Vo = new Matriz(1,3);
double aux = Double.parseDouble(jTextField8.getText());
Vo.matriz[0][0]= aux;
aux= Double.parseDouble(jTextField1.getText());
Vo.matriz[0][1]= aux;
aux= Double.parseDouble(jTextField10.getText());
Vo.matriz[0][2]= aux;

double x=1;
jTextArea4.setText(Vo.multiplicaEscalar(x).imprimir());
}
}

APPLET

Un applet es un componente de una aplicación que se ejecuta en el contexto de otro programa, por ejemplo un navegador web. El applet debe ejecutarse en un contenedor, que lo proporciona un programa anfitrión, mediante un plugin, o en aplicaciones como teléfonos móviles que soportan el modelo de programación por applets.

A diferencia de un programa, un applet no puede ejecutarse de manera independiente, ofrece información gráfica y a veces interactúa con el usuario, típicamente carece de sesión y tiene privilegios de seguridad restringidos. Un applet normalmente lleva a cabo una función muy específica que carece de uso independiente. El término fue introducido en AppleScript en 1993.

Ejemplos comunes de applets son las Java applets y las animaciones Flash. Otro ejemplo es el Windows Media Player utilizado para desplegar archivos de video incrustados en los navegadores como el Internet Explorer. Otros plugins permiten mostrar modelos 3D que funcionan con una applet.

Un Java applet es un código JAVA que carece de un método main, por eso se utiliza principalmente para el trabajo de páginas web, ya que es un pequeño programa que es utilizado en una página HTML y representado por una pequeña pantalla gráfica dentro de ésta.

Por otra parte, la diferencia entre una aplicación JAVA y un applet radica en cómo se ejecutan. Para cargar una aplicación JAVA se utiliza el intérprete de JAVA (pcGRASP de Auburn University, Visual J++ de Microsoft, Forte de Sun de Visual Café). En cambio, un applet se puede cargar y ejecutar desde cualquier explorador que soporte JAVA (Netscape, Internet Explorer de Windows, Mozilla Firefox...etc).

martes, 12 de mayo de 2009

LIBRERIAS SWING Y AWT

LIBRERIA SWING
La librería de Componentes Swing Visual Java ofrece a los programadores unos componentes fácilmente integrables que permiten añadir atractivos estilos a botones, diálogos de color, campos de búsqueda y diseñar modernas y amigables interfaces gráficas de usuario para aplicaciones y applets Java. Es una plataforma independiente, Model-View-Controller Gui framework para Java. Sigue un simple modelo de programación por hilos, y posee las siguientes características principales:
Independencia de plataforma.
Extensibilidad: es una arquitectura altamente particionada: los usuarios pueden proveer sus propias implementaciones modificadas para sobrescribir las implementaciones por defecto. Se puede extender clases existentes proveyendo alternativas de implementación para elementos esenciales.
Customizable: dado el modelo de representación programático del framework de swing, el control permite representar diferentes 'look and feel' (desde MacOS look and feel hasta Windows XP look and feel). Más allá, los usuarios pueden proveer su propia implementación look and feel, que permitirá cambios uniformes en el look and feel existente en las aplicaciones Swing sin efectuar ningún cambio al código de aplicación.

Ventajas
El diseño en Java puro posee menos limitaciones de plataforma.
El desarrollo de componentes Swing es más activo.
Los componentes de Swing soportan más características.


LIBRERIA AWT
Se trata de una biblioteca de clases Java para el desarrollo de Interfaces de Usuario Gráficas. La versión del AWT que Sun proporciona con el JDK se desarrolló en sólo dos meses y es la parte más débil de todo lo que representa Java como lenguaje. El entorno que ofrece es demasiado simple, no se han tenido en cuenta las ideas de entornos gráficos novedosos. Quizá la presión de tener que lanzar algo al mercado haya tenido mucho que ver en la pobreza de AWT.

Javasoft, en vista de la precariedad de que hace gala el AWT, y para asegurarse que los elementos que desarrolla para generar interfaces gráficas sean fácilmente transportables entre plataformas, se ha unido con Netscape, IBM y Lighthouse Design para crear un conjunto de clases que proporcionen una sensación visual agradable y sean más fáciles de utilizar por el programador. Esta colección de clases son las Java Foundation Classes (JFC), que están constituidas por cinco grupos de clases, al menos en este momento: AWT, Java 2D, Accesibilidad, Arrastrar y Soltar y Swing.

La estructura básica del AWT se basa en Componentes y Contenedores. Estos últimos contienen Componentes posicionados a su respecto y son Componentes a su vez, de forma que los eventos pueden tratarse tanto en Contenedores como en Componentes, corriendo por cuenta del programador (todavía no hay herramientas de composición visual) el encaje de todas las piezas, así como la seguridad de tratamiento de los eventos adecuados. Con Swing se va un paso más allá, ya que todos los JComponentes son subclases de Container, lo que hace posible que widgets Swing puedan contener otros componentes, tanto de AWT como de Swing, lo que hace prever interesantes posibilidades.

HERENCIA

Herencia

public class Vector extends Matriz{

public Vector(){

}
public Vector(int numElementos){
numeroFilas=1;
numeroColumnas=numElementos;
matriz = new double[numeroFilas][numeroColumnas];
}
public Vector( int nF, int nC){
super(nF,nC);
}
public Matriz productoCruz(Vector X){

Matriz resultado;
resultado = X.transpueta();
resultado = this.multiplica(resultado);
return resultado;
}
public static void main (String [] args){

Vector v = new Vector(1,3);
v.matriz[0][0]=1;
v.matriz[0][1]=0;
v.matriz[0][2]=1;
//v.transpueta();
System.out.println(v.transpueta().imprimir());

Vector v1 = new Vector(1,3);
v1.matriz[0][0]=1;
v1.matriz[0][1]=2;
v1.matriz[0][2]=3;

Matriz respuesta;
respuesta=v.productoCruz(v1);

System.out.println(v1.transpueta().imprimir());
System.out.print(v.suma(v1).imprimir());
System.out.println("resultado del producto cruz\n"+respuesta.imprimir());
//System.out.print("producto escalar"+v.productoEscalar(v1));
}
}
APLICACIÓN:
public class OperacionesMatriz extends javax.swing.JFrame {
String aux="";
public OperacionesMatriz() {
initComponents();
}


private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
double x1=Double.parseDouble(jTextField1.getText());
double y1=Double.parseDouble(jTextField2.getText());
double z1=Double.parseDouble(jTextField3.getText());
double x2=Double.parseDouble(jTextField4.getText());
double y2=Double.parseDouble(jTextField5.getText());
double z2=Double.parseDouble(jTextField6.getText());
Matriz v1 =new Matriz (1,3);
Matriz v2=new Matriz(1,3);
v1.matriz[0][0]=x1;v1.matriz[0][1]=y1;v1.matriz[0][2]=z1;
v2.matriz[0][0]=x2;v2.matriz[0][1]=y2;v2.matriz[0][2]=z2;
aux="El resultado de la suma es:\n";
aux+=(v1.suma(v2)).imprimir();
jTextArea1.setText(aux);

}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
double x1=Double.parseDouble(jTextField1.getText());
double y1=Double.parseDouble(jTextField2.getText());
double z1=Double.parseDouble(jTextField3.getText());
double x2=Double.parseDouble(jTextField4.getText());
double y2=Double.parseDouble(jTextField5.getText());
double z2=Double.parseDouble(jTextField6.getText());
Matriz v1 =new Matriz (1,3);
Matriz v2=new Matriz(1,3);
v1.matriz[0][0]=x1;v1.matriz[0][1]=y1;v1.matriz[0][2]=z1;
v2.matriz[0][0]=x2;v2.matriz[0][1]=y2;v2.matriz[0][2]=z2;
aux="El resultado de la resta es:\n";
aux+=(v1.resta(v2)).imprimir();
jTextArea1.setText(aux);
}



private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {
double x1=Double.parseDouble(jTextField1.getText());
double y1=Double.parseDouble(jTextField2.getText());
double z1=Double.parseDouble(jTextField3.getText());
double x2=Double.parseDouble(jTextField4.getText());
double y2=Double.parseDouble(jTextField5.getText());
double z2=Double.parseDouble(jTextField6.getText());
Matriz v1 =new Matriz(1,3);
Matriz v2=new Matriz(1,3);
v1.matriz[0][0]=x1;v1.matriz[0][1]=y1;v1.matriz[0][2]=z1;
v2.matriz[0][0]=x2;v2.matriz[0][1]=y2;v2.matriz[0][2]=z2;


aux="El producto vectorial es:\n";
aux+=(v1.productoVectorial(v2)).imprimir();
jTextArea1.setText(aux);

}

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
double x1=Double.parseDouble(jTextField1.getText());
double y1=Double.parseDouble(jTextField2.getText());
double z1=Double.parseDouble(jTextField3.getText());
double x2=Double.parseDouble(jTextField4.getText());
double y2=Double.parseDouble(jTextField5.getText());
double z2=Double.parseDouble(jTextField6.getText());
Matriz v1 =new Matriz(1,3);
Matriz v2=new Matriz(1,3);
v1.matriz[0][0]=x1;v1.matriz[0][1]=y1;v1.matriz[0][2]=z1;
v2.matriz[0][0]=x2;v2.matriz[0][1]=y2;v2.matriz[0][2]=z2;

aux="El producto escalar es:\n";
aux+=(v1.productoEscalar(v2)).imprimir();
jTextArea1.setText(aux);

}

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
double x1=Double.parseDouble(jTextField1.getText());
double y1=Double.parseDouble(jTextField2.getText());
double z1=Double.parseDouble(jTextField3.getText());
double x2=Double.parseDouble(jTextField4.getText());
double y2=Double.parseDouble(jTextField5.getText());
double z2=Double.parseDouble(jTextField6.getText());
Matriz v1 =new Matriz(1,3);
Matriz v2=new Matriz(1,3);
v1.matriz[0][0]=x1;v1.matriz[0][1]=y1;v1.matriz[0][2]=z1;
v2.matriz[0][0]=x2;v2.matriz[0][1]=y2;v2.matriz[0][2]=z2;


aux="El resultado del vector unitario es:\n";
aux+=v1.vectorUnitario().imprimir();
aux+=v.vectorUnitario().imprimir();
jTextArea1.setText(aux);

}

public class Matriz {

int numeroFilas;
int numeroColumnas;
double [][] matriz;

public Matriz(){}

public Matriz(int nF, int nC){
numeroFilas=nF;
numeroColumnas=nC;
matriz= new double[numeroFilas][numeroColumnas];

for(int i=0; i< numeroFilas; i++)
for(int j=0; j< numeroColumnas; j++)
matriz[i][j]=0;
}


public String imprimir(){
String aux = "";

for(int i=0; i for(int j=0; j aux= aux + matriz[i][j] + " ";
}
aux = aux + "\n";
}
return aux;
}

public Matriz productoEscalar(Matriz B){
if((this.numeroFilas==1)&(B.numeroFilas==1)&(this.numeroColumnas==3)&(B.numeroColumnas==3)){

Matriz r = new Matriz(this.numeroColumnas,this.numeroFilas);

for (int i = 0; i < this.numeroColumnas; i++)

r.matriz[0][i] += this.matriz[0][i]*B.matriz[0][i];
return r;
}
else{
Matriz r = new Matriz (1,1);
System .out.println("No se pueden obtener producto escalar");
return r;
}
}


public Matriz vectorUnitario(){
if((this.numeroFilas==1)&(this.numeroColumnas==3)){
Matriz r = new Matriz(1,3);

for (int i = 0; i < this.numeroColumnas; i++)

r.matriz[0][i] = this.matriz[0][i]/Math.sqrt((Math.pow(this.matriz[0][0],2)+Math.pow(this.matriz[0][1],2)+Math.pow(this.matriz[0][2],2)));
return r;
}

else{
Matriz r = new Matriz (1,1);
System .out.println("No se pueden obtener el vector unitario");
return r;
}
}




public Matriz productoVectorial(Matriz B){
if((this.numeroFilas==1)&(B.numeroFilas==1)&(this.numeroColumnas==3)&(B.numeroColumnas==3)){
Matriz r = new Matriz(this.numeroColumnas,this.numeroFilas);
r.matriz[0][0]=(this.matriz[0][1]*B.matriz[0][2])-(B.matriz[0][1]*this.matriz[0][2]);
r.matriz[0][1]=-(this.matriz[0][0]*B.matriz[0][2])-(B.matriz[0][0]*this.matriz[0][2]);
r.matriz[0][2]=(this.matriz[0][0]*B.matriz[0][1])-(B.matriz[0][0]*this.matriz[0][1]);


return r;
}
else{
Matriz r = new Matriz (1,1);
System .out.println("No se pueden obtener el Producto vectorial");
return r;
}
}


}