miércoles, 27 de mayo de 2009

Ejercicio Panel




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 panelInterD;
private JTextField [][] text;
private JPanel panelInterI;


public DemoPanel(){
super("MI PANEL");
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++){
botones[i][j] = new JButton(nombres[k]);
k += 1;
panelInicio.add(botones[i][j]);

}
}
contenedor.add(panelInicio,BorderLayout.NORTH);

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);


text = new JTextField[4][3];
panelInterD = new JPanel (new GridLayout(5,5,10,10));
for(int i = 0; i<4; i++){
for(int j = 0; j<3; j++){
text[i][j]= new JTextField("texto"+i+" "+j);
panelInterD.add(text[i][j]);
}
}
contenedor.add(panelInterD, BorderLayout.WEST);

text = new JTextField [2][4];
panelInterI = new JPanel (new GridLayout(5,5,10,10));
for(int i = 0; i<2; i++){
for(int j = 0; j<4; j++){
text[i][j]= new JTextField("texto"+i+" "+j);
panelInterI.add(text[i][j]);
}
}
contenedor.add(panelInterI, BorderLayout.EAST);

setSize(425,150);
setVisible(true);
}

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

}

}

lunes, 25 de mayo de 2009

Grafica del msen(ax+b)- mcos(ax+b)




import java.applet.Applet;
import java.awt.*;
public class senx extends Applet {
public void paint(Graphics g){
this.setSize(800, 450);
int a=1;
int b=1;
double m=1;
g.setColor(Color.ORANGE);
g.drawString("y = MSen (ax+b)", 400, 60);
g.drawString("Y = f(x)",100,80);
g.drawString("-Y = f(x)",100,420);
g.drawString("0",90,305);
g.drawString("X = Rad",620,300);
//g.drawString("π/2",180,300);
//g.drawString("π",290,290);
//g.drawString("3π/2",360,300);
//g.drawString("2π",450,290);
g.setColor(Color.black);


for(int i=0; i<360; i=i+2){
int c=a*i+b;
int k=(int) (300 - 100*(Math.sin(c*3.1416/180)));
k= k*(int)m;
int n=(int) (300 - 100*(Math.cos(c*3.1416/180)));
int o =a*i+b;
g.setColor(Color.yellow);
g.fillOval( 100 + i,k,6,6);
g.setColor(Color.CYAN);
g.fillOval( 100 + i,n,6,6);
g.setColor(Color.RED);
g.fillOval(i, o, 1, 1);}

g.drawLine(100, 100, 100, 400);
g.drawLine(100, 300, 600, 300);
}
}

domingo, 24 de mayo de 2009

Grafico de la Funcion Sen



public class FuncionSenApplet extends Applet {
public void paint(Graphics g){
g.drawString("Carolina Pinto", 190, 79);
g.drawString("seno", 199, 79);
g.drawString("y=",200 , 80);
g.drawLine(40, 40, 40, 450);
g.drawLine(20, 270, 450, 270);
g.setColor(Color. BLUE);
for(int i=0;i<361; i="i+2){">
g.fillOval( 38 + i,(int) (265 - 100*(Math.sin(i*3.1416/180))),6,6);}
g.setColor(Color.RED); 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 ", 25, 35);
int ymax=this.getHeight();
int xmax=this.getWidth();
this.setSize(800, 800);
} }

miércoles, 20 de mayo de 2009

Ciclos de Vida de un Applet


CICLO DE VIDA DE UN APPLET
Deberías ver "initializing... starting..." arriba, como resultado de la carga del applet.
Cuando se carga un applet, aquí está lo que sucede:

Se crea un ejemplar de la clase que controla el applet (una subclase de Applet).
El applet se auto-initializa.
El applet empieza su ejecución.

Cuando un usuario deja la página del applet. Cuando el usuario retorna a la página, el applet puede autoarrancarse otra vez. La misma secuencia ocurre cuando el usuario minimiza y reabre la ventana que contiene el applet.
Algunos navegadores nos permiten recargar el applet, que consiste en descargar el applet y volver a cargarlo de nuevo. Para que el applet pueda liberar cualquier recurso que contenga el applet. Después de esto, el applet es descargado y luego cargado otra vez, como se decribe en Cargar el Applet.
Salir del Navegador
Cuando el usuario cierra el navegador, el applet tiene la oportunidad de pararse y hacer una limpieza final antes de que el navegador salga.

Un Applet puede reaccionar ante los eventos mayores de las siguientes formas:
Puede auto-inicializarse.
Puede arrancar su ejecución.
Puede parar su ejecución.
Puede realizar una limpieza final, como preparación para ser descargado.

MRU y MRUV (WITH APPLET)




private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:

Matriz m = new Matriz(1,3);
double aux = Double.parseDouble(jTextField1.getText());
m.matriz[0][0]=aux;
aux= Double.parseDouble(jTextField4.getText());
m.matriz[0][1]=aux;
aux= Double.parseDouble(jTextField11.getText());
m.matriz[0][2]=aux;

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

Matriz o = new Matriz(1,3);
aux = Double.parseDouble(jTextField3.getText());
o.matriz[0][0]=aux;
aux= Double.parseDouble(jTextField2.getText());
o.matriz[0][1]=aux;
aux= Double.parseDouble(jTextField12.getText());
o.matriz[0][2]=aux;

jTextArea1.setText((o.suma(m.multiplicaEscalar(t))).imprimir());
}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Matriz m = new Matriz(1,3);
double aux = Double.parseDouble(jTextField1.getText());
m.matriz[0][0]=aux;
aux= Double.parseDouble(jTextField4.getText());
m.matriz[0][1]=aux;
aux= Double.parseDouble(jTextField11.getText());
m.matriz[0][2]=aux;
jTextArea1.setText("Velocidad constante");
jTextArea1.setText(m.imprimir());
}

private void jTextField11ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

private void jTextField12ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:

Matriz m = new Matriz(1,3);
double aux = Double.parseDouble(jTextField5.getText());
m.matriz[0][0]=aux;
aux= Double.parseDouble(jTextField6.getText());
m.matriz[0][1]=aux;
aux= Double.parseDouble(jTextField13.getText());
m.matriz[0][2]=aux;

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

Matriz o = new Matriz(1,3);
aux = Double.parseDouble(jTextField7.getText());
o.matriz[0][0]=aux;
aux= Double.parseDouble(jTextField8.getText());
o.matriz[0][1]=aux;
aux= Double.parseDouble(jTextField14.getText());
o.matriz[0][2]=aux;

Matriz a = new Matriz(1,3);
aux = Double.parseDouble(jTextField15.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;


jTextArea1.setText((o.suma(m.multiplicaEscalar(t)).suma(a.multiplicaEscalar(t*t*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(jTextField5.getText());
Vo.matriz[0][0]=aux;
aux= Double.parseDouble(jTextField6.getText());
Vo.matriz[0][1]=aux;
aux= Double.parseDouble(jTextField7.getText());
Vo.matriz[0][2]=aux;

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

Matriz a = new Matriz(1,3);
aux = Double.parseDouble(jTextField15.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;

jTextArea1.setText((Vo.suma(a.multiplicaEscalar(t))).imprimir());


}


// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel13;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel15;
private javax.swing.JLabel jLabel16;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextArea jTextArea1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField10;
private javax.swing.JTextField jTextField11;
private javax.swing.JTextField jTextField12;
private javax.swing.JTextField jTextField13;
private javax.swing.JTextField jTextField14;
private javax.swing.JTextField jTextField15;
private javax.swing.JTextField jTextField16;
private javax.swing.JTextField jTextField17;
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;
private javax.swing.JTextField jTextField4;
private javax.swing.JTextField jTextField5;
private javax.swing.JTextField jTextField6;
private javax.swing.JTextField jTextField7;
private javax.swing.JTextField jTextField8;
private javax.swing.JTextField jTextField9;
// End of variables declaration

}

domingo, 17 de mayo de 2009

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).

Obtenido de "http://es.wikipedia.org/wiki/Applet"

Herencias

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));
}
}

martes, 12 de mayo de 2009

SWING Y AWT

Swing
Es una biblioteca gráfica para Java. Incluye widgets para interfaz gráfica de usuario tales como cajas de texto, botones, desplegables y tablas.
El paquete Swing es parte de la JFC (Java Foundation Classes) en la plataforma Java. La JFC provee facilidades para ayudar a la gente a construir GUIs. Swing abarca componentes como botones, tablas, marcos, etc...
Las componentes Swing se identifican porque pertenecen al paquete javax.swing.
Swing existe desde la JDK 1.1 (como un agregado). Antes de la existencia de Swing, las interfaces gráficas con el usuario se realizaban a través de AWT (Abstract Window Toolkit), de quien Swing hereda todo el manejo de eventos. Usualmente, para toda componente AWT existe una componente Swing que la reemplaza, por ejemplo, la clase Button de AWT es reemplazada por la clase JButton de Swing (el nombre de todas las componentes Swing comienza con "J").

Cuando se empieza a utilizar Swing, se observa que JavaSoft ha dado un gran paso adelante respecto al AWT. Ahora los Componentes del interfaz gráfico son Beans y utilizan el nuevo modelo de Delegación de Eventos de Java. Swing proporciona un conjunto completo de Componentes, todos ellos lightweight, es decir, ya no se usan componentes "peer" dependientes del sistema operativo, y además, Swing está totalmente escrito en Java. Todo ello redunda en una mayor funcionalidad en manos del programador, y en la posibilidad de mejorar en gran medida la cosmética de los interfaces gráficos de usuario.

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.

AWT
(Abstract Window Toolkit). API de Java que permite a los programadores hacer aplicaciones JAVA con componentes GUI (como ventanas, botones, barras, campos de texto, etc.).
AWT es el acrónimo del X Window Toolkit para Java, donde X puede ser cualquier cosa: Abstract, Alternative, Awkward, Another o Asqueroso; aunque parece que Sun se decanta por Abstracto, seriedad por encima de todo. 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, sino que se ha ahondado en estructuras orientadas a eventos, llenas de callbacks y sin soporte alguno del entorno para la construcción gráfica; veremos que la simple acción de colocar un dibujo sobre un botón se vuelve una tarea harto complicada. Quizá la presión de tener que lanzar algo al mercado haya tenido mucho que ver en la pobreza de AWT.

JavaSoft, asegura que esto sólo era el principio y que AWT será multi-idioma, tendrá herramientas visuales, etc. En fin, al igual que dicen los astrólogos, el futuro nos deparará muchas sorpresas.

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. Nada trivial.

No obstante y pese a ello, vamos a abordar en este momento la programación con el AWT para tener la base suficiente y poder seguir profundizando en las demás características del lenguaje Java, porque como vamos a ir presentando ejemplos gráficos es imprescindible el conocimiento del AWT. Mientras tanto, esperemos que JavaSoft sea fiel a sus predicciones y lo que ahora veamos nos sirva de base para migrar a un nuevo y maravilloso AWT.