miércoles, 27 de mayo de 2009

Paneles


/**
*
* @author Paul Lozada
*/
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 JPanel panelDerecho;
private JPanel panelIzquierdo;
private JTextField [][]blank;
private JButton [][] botones;//arrego de botones
private JLabel [][] texto;

public DemoPanel (){
super("Paul Lozada");
botones = new JButton[2][2];
contenedor = getContentPane();
panelInicio = new JPanel(new GridLayout(2,2));
String [] nombres = {"Enero","Febrero","Marzo","abril","mayo","junio"};

int k = 0;
for (int i =0; i< botones.length;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);
}

blank = new JTextField[4][3];
panelDerecho = new JPanel(new GridLayout(4,3,10,10));
for(int i=0; i<4;i++){
for(int j =0; j<3 ;j++) {
blank[i][j] = new JTextField("texto"+i+""+j);
panelDerecho.add(blank[i][j]);
}
contenedor.add(panelDerecho,BorderLayout.WEST);
}
blank = new JTextField[2][4];
panelIzquierdo = new JPanel(new GridLayout(4,3,10,10));
for(int i=0; i<2;i++){
for(int j =0; j<4 ;j++) {
blank[i][j] = new JTextField("texto"+i+""+j);
panelIzquierdo.add(blank[i][j]);
}
contenedor.add(panelIzquierdo,BorderLayout.EAST);
}
setSize(500,500);
setVisible(true);

}

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

lunes, 25 de mayo de 2009

Evaluacion3



/**
*
* @author Paul Lozada
*/
import java.applet.Applet;
import java.awt.*;
public class SennoApplet extends Applet {
public void paint(Graphics g){
g.drawString("y= m * Sen(ax+b)",400 , 300);
g.drawString("y= m * Cos(ax+b)",400 , 179);
g.drawString("y= (a*x+b) ",250 , 100);

g.drawLine(40, 40, 40, 450);
g.drawLine(20, 270, 450, 270);
g.setColor(Color.LIGHT_GRAY);

int a=1;
int m=100;
int b=0;

for(int i=0;i<361; i=i+2){
g.fillOval( a*(38 + i)+b,(int) (265 - m *(Math.cos(i*3.1416/180))),6,6);}

g.setColor(Color.red);

for(int i=0;i<361; i=i+2){
g.fillOval( a*(38 + i)+b,(int) (265 - m *(Math.sin(i*3.1416/180))),6,6);}

g.setColor(Color.blue);

for(int i=0;i<361; i=i+2){

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


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.RED);
g.drawString("X (Radianes)", 460, 270);
g.drawString("Y f(x)", 25, 35);
int ymax=this.getHeight();
int xmax=this.getWidth();
this.setSize(600, 500);
} }
/**
*
* @author Paul Lozada
*/

domingo, 24 de mayo de 2009

Funcion seno


/**
*
* @author Paul Lozada
*/
import java.applet.Applet;
import java.awt.*;
public class SennoApplet extends Applet {
public void paint(Graphics g){
g.drawString("y=Sen(x)",200 , 80);
g.drawLine(40, 40, 40, 450);
g.drawLine(20, 270, 450, 270);
g.setColor(Color.RED);
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.WHITE);
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.RED);
g.drawString("X (Radianes)", 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 de un applet

------------------------CICLO DE VIDAD DE UN APPLET--------------------------
1) CARGAR UN APPLET
A través de la página HTML que lo carga y corre. Lo primero que aparece son los mensajes "initializing... starting...", como resultado de la carga del applet. Una vez cargado, lo que sucede es que se crea una instancia de la clase que controla al applet. Comienza la ejecución del applet.


2) ABANDONAR Y CARGAR NUEVAMENTE L PAGINA DEL APPLET.
Cuando se abandona la página, por ejemplo, para ir a la siguiente, el applet detiene la ejecución. Cuando se regresa a la página que contiene el applet, se reanuda la ejecución.

3) RECARGAR UN APPLET
Si se utiliza la opción del navegador de Reload (refresh), es decir, volver a cargar la página, el applet es descargado y vuelto a cargar. El applet libera todos los recursos que hubiese acaparado, detiene su ejecución y ejecuta su finalizador para realizar un proceso de limpieza final de sus trazas. Después de esto, el applet se descarga de la memoria y vuelve a cargarse volviendo a comenzar su inicialización.

4) SALIR DE LA APLICACION (DEL NAVEGADOR)
Cuando el usuario cierra el navegador (o cualquier otra aplicación que muestra el applet), el applet tiene la oportunidad de pararse y hacer una limpieza final antes de que el navegador salga.

5) SUMARIO
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
-------------------------------------------------------------------------------------

lunes, 18 de mayo de 2009

Segunda evaluacion



private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

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

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

Matriz Xoi = new Matriz(1,3);
aux = Double.parseDouble(jTextField4.getText());
Xoi.matriz[0][0]= aux;
aux= Double.parseDouble(jTextField5.getText());
Xoi.matriz[0][1]= aux;
aux= Double.parseDouble(jTextField6.getText());
Xoi.matriz[0][2]= aux;
Matriz a=new Matriz(1,3);
a.matriz[0][0]=0;a.matriz[0][1]=0;a.matriz[0][2]=0;
aux2="LA VELOCIDAD FINAL ES\n";
aux2+=Voi.suma(a.multiplicaEscalar(t)).imprimir();
// jTextArea1.setText(Vo.suma(a.multiplicaEscalar(t)).imprimir());
jTextArea1.setText(aux2);
}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

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

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

Matriz Xoi = new Matriz(1,3);
aux = Double.parseDouble(jTextField4.getText());
Xoi.matriz[0][0]= aux;
aux= Double.parseDouble(jTextField5.getText());
Xoi.matriz[0][1]= aux;
aux= Double.parseDouble(jTextField6.getText());
Xoi.matriz[0][2]= aux;
aux2="LA POSICION FINAL ES:\n";
aux2+=Xoi.suma(Voi.multiplicaEscalar(t)).imprimir();
// jTextArea1.setText(Xo.suma(Vo.multiplicaEscalar(t)).imprimir());
jTextArea3.setText(aux2);

}

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

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

Matriz Xoi = new Matriz(1,3);
aux = Double.parseDouble(jTextField11.getText());
Xoi.matriz[0][0]= aux;
aux= Double.parseDouble(jTextField12.getText());
Xoi.matriz[0][1]= aux;
aux= Double.parseDouble(jTextField13.getText());
Xoi.matriz[0][2]= aux;
Matriz a=new Matriz(1,3);
aux = Double.parseDouble(jTextField14.getText());
a.matriz[0][0]= aux;
aux= Double.parseDouble(jTextField15.getText());
a.matriz[0][1]= aux;
aux= Double.parseDouble(jTextField16.getText());
a.matriz[0][2]= aux;
aux2="LA Velocidad final es:\n";
aux2+=Xo.suma(Vo.suma(a.multiplicaEscalar(t))).imprimir();
// jTextArea2.setText(Xoi.suma(Voi.suma(a.multiplicaEscalar(t))).imprimir());

jTextArea2.setText(aux2);
}

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

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

Matriz Xoi = new Matriz(1,3);
aux = Double.parseDouble(jTextField11.getText());
Xoi.matriz[0][0]= aux;
aux= Double.parseDouble(jTextField12.getText());
Xoi.matriz[0][1]= aux;
aux= Double.parseDouble(jTextField13.getText());
Xoi.matriz[0][2]= aux;
Matriz a=new Matriz(1,3);
aux = Double.parseDouble(jTextField14.getText());
a.matriz[0][0]= aux;
aux= Double.parseDouble(jTextField15.getText());
a.matriz[0][1]= aux;
aux= Double.parseDouble(jTextField16.getText());
a.matriz[0][2]= aux;
aux2="LA POSICION FINAL ES:\n";
aux2+=Xoi.suma(Voi.multiplicaEscalar(t).suma(a.multiplicaEscalar(t*t*0.5))).imprimir();

// jTextArea2.setText(Xoi.suma(Voi.multiplicaEscalar(t).suma(a.multiplicaEscalar(t*t*0.5))).imprimir());
jTextArea4.setText(aux2);

}

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"

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.

BIBLIOTECA(o librería).- es un conjunto de subprogramas utilizados para desarrollar software. Las bibliotecas contienen código y datos, que proporcionan servicios a programas independientes, es decir, pasan a formar parte de éstos. Esto permite que el código y los datos se compartan y puedan modificarse de forma modular. Algunos programas ejecutables pueden ser a la vez programas independientes y bibliotecas, pero la mayoría de éstas no son ejecutables. Ejecutables y bibliotecas hacen referencias (llamadas enlaces o links) entre sí a través de un proceso conocido como enlace (o link), que por lo general es realizado por un software denominado enlazador o linker.

WIDGET.- Es una pequeña aplicación o programa, usualmente presentado en archivos o ficheros pequeños que son ejecutados por un motor de widgets o Widget Engine. Entre sus objetivos están los de dar fácil acceso a funciones frecuentemente usadas y proveer de información visual. Sin embargo los widgets pueden hacer todo lo que la imaginación desee e interactuar con servicios e información distribuida en Internet; pueden ser vistosos relojes en pantalla, notas, calculadoras, calendarios, agendas, juegos, ventanas con información del tiempo en su ciudad, etcétera.

-------------------------------------AWT-----------------------------------------

La Abstract Window Toolkit (AWT, en español Kit de Herramientas de Ventana Abstracta) es un kit de herramientas de gráficos, interfaz de usuario, y sistema de ventanas independiente de la plataforma original de Java. AWT es ahora parte de las Java Foundation Classes (JFC) - la API estandar para suministrar una interfaz gráfica de usuario (GUI) para un programa Java.

Cuando Sun Microsystems liberó Java en 1995, AWT suministró solo un nivel de abstracción muy fino sobre la interfaz de usuario nativa subyacente. Por ejemplo, crear una caja de verificación AWT causaría que AWT directamente llame a la subrutina nativa subyacente que cree una caja de verificación. Sin embargo, una caja de verificación en Microsoft Windows no es exactamente lo mismo que una caja de verificación en Mac OS o en los distintos tipos de UNIX. Algunos desarrolladores de aplicaciones prefieren este modelo porque suministra un alto grado de fidelidad al kit de herramientas nativo subyacente y mejor integración con las aplicaciones nativas. En otras palabras, un programa GUI escrito usando AWT parece como una aplicación nativa Microsoft Windows cuando se ejecuta en Windows, pero el mismo programa parece una aplicación nativa Apple Macintosh cuando se ejecuta en un Mac, etc. Sin embargo, algunos desarrolladores de aplicaciones desprecian este modelo porque prefieren que sus aplicaciones se vean exactamente igual en todas las plataformas.

En J2SE 1.2, los widgets de AWT fueron ampliamente superados por aquellos del kit de herramientas Swing. Además de proveer un conjunto más rico de widgets UI, Swing dibuja sus propios widgets (usando Java 2D para llamar a las subrutinas de bajo nivel en el subsistema de gráficos local) en lugar de confiar en el módulo de interfaz de usuario de alto nivel del sistema operativo. Swing suministra la opción de usar un aspecto nativo o de plataforma cruzada para la aplicación.

AWT continua suministrando el núcleo del subsistema de eventos GUI y la interfaz entre el sistema de ventanas nativo y la aplicación Java, suministrando la estructura que necesita Swing. También suministra gestores de disposición básicos, un paquete de transferencia de datos para uso con el Bloc de notas y Arrastrar y Soltar, y la interface para los dispositivos de entrada tales como el ratón y el teclado.

Ejercico visual

public class OperacionesMatriz extends javax.swing.JFrame {
String aux= "";

/** Creates new form OperacionesMatriz Paul Lozada*/
public OperacionesMatriz() {
initComponents();
}

/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
//
private void initComponents() {

jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
jLabel6 = new javax.swing.JLabel();
jLabel7 = new javax.swing.JLabel();
jLabel8 = new javax.swing.JLabel();
jTextField1 = new javax.swing.JTextField();
jTextField2 = new javax.swing.JTextField();
jTextField3 = new javax.swing.JTextField();
jTextField4 = new javax.swing.JTextField();
jTextField5 = new javax.swing.JTextField();
jTextField6 = new javax.swing.JTextField();
jLabel9 = new javax.swing.JLabel();
jButton1 = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
jButton2 = new javax.swing.JButton();
jButton3 = new javax.swing.JButton();
jButton4 = new javax.swing.JButton();
jButton5 = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jLabel1.setText("Vector1");

jLabel2.setText("Vector2");

jLabel3.setText("x1");

jLabel4.setText("y1");

jLabel5.setText("z1");

jLabel6.setText("x2");

jLabel7.setText("y2");

jLabel8.setText("z2");

jLabel9.setBackground(new java.awt.Color(0, 0, 255));
jLabel9.setText("Resultado de la suma de vectores");

jButton1.setText("SUMAR");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jScrollPane1.setViewportView(jTextArea1);

jButton2.setText("Restya");
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});

jButton3.setText("P. vectorial");
jButton3.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton3ActionPerformed(evt);
}
});

jButton4.setText("P. escalar");
jButton4.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton4ActionPerformed(evt);
}
});

jButton5.setText("Unitario");
jButton5.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton5ActionPerformed(evt);
}
});

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(38, 38, 38)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(jButton1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 28, Short.MAX_VALUE)
.addComponent(jButton2))
.addComponent(jLabel9, javax.swing.GroupLayout.DEFAULT_SIZE, 166, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
.addComponent(jLabel5)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jTextField3))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
.addComponent(jLabel4)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jTextField2))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jTextField1)
.addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
.addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel8)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel6)
.addComponent(jLabel7)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addGap(21, 21, 21)
.addComponent(jTextField6))
.addGroup(layout.createSequentialGroup()
.addGap(22, 22, 22)
.addComponent(jTextField5))
.addGroup(layout.createSequentialGroup()
.addGap(22, 22, 22)
.addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(210, 210, 210))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(jButton3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton4, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton5, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel2, javax.swing.GroupLayout.Alignment.LEADING))
.addGap(186, 186, 186))))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(25, 25, 25)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jLabel2))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel6))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(jTextField5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel7))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(jTextField6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel8))
.addGap(33, 33, 33)
.addComponent(jLabel9)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addComponent(jButton4)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton5)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButton1)
.addComponent(jButton2))
.addContainerGap())
);

pack();
}//


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 vector unitario es: \n";
aux += v1.unitario(v2).imprimir();

jTextArea1.setText(aux); // TODO add your handling code here:
}

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 resultado vectorial es: \n";
aux += v1.multiplica(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 escalar es: \n";
aux += v1.multiplicaEscalar(z2);

jTextArea1.setText(aux); // TODO add your handling code here:
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new OperacionesMatriz().setVisible(true);
}
});
}

// 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.JButton jButton5;
private javax.swing.JLabel jLabel1;
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 jTextField2;
private javax.swing.JTextField jTextField3;
private javax.swing.JTextField jTextField4;
private javax.swing.JTextField jTextField5;
private javax.swing.JTextField jTextField6;
// End of variables declaration

}
/** el ejercicio se realiza con la clase matriz **/

domingo, 10 de mayo de 2009

Herencia vectorial

public class Matriz {
int numeroFilas;
int numeroColumnas;
double [][] matriz;


public Matriz(){}


/**
* Constructor de matrices
* @param nF numero de filas
* @param nC numero de columnas
*/


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 String imprimir2(){
String aux ="";
aux=aux+"y1="+ matriz[0][0];
aux=aux+"\n";
aux=aux+"y2="+matriz[1][0];
return aux;
}

public Matriz suma(Matriz B){

if ((this.numeroFilas == B.numeroFilas)&(this.numeroColumnas==B.numeroColumnas)){
Matriz r = new Matriz(this.numeroFilas,this.numeroColumnas);
int j;
for(int i = 0; i < this.numeroFilas; i++)
for(j = 0; j r.matriz[i][j]=this.matriz[i][j]+B.matriz[i][j];
return r;
}
else{
Matriz r = new Matriz (1,1);
System .out.println("No se pueden sumar las matrices");
return r;
}
}

public Matriz resta(Matriz B){

if ((this.numeroFilas == B.numeroFilas)&(this.numeroColumnas==B.numeroColumnas)){
Matriz r = new Matriz(this.numeroFilas,this.numeroColumnas);
int j;
for(int i = 0; i < this.numeroFilas; i++)
for(j = 0; j r.matriz[i][j]=this.matriz[i][j]-B.matriz[i][j];
return r;
}
else{
Matriz r = new Matriz (1,1);
System .out.println("No se pueden restar las matrices");
return r;
}
}

public Matriz multiplica(Matriz B){
if(this.numeroFilas==B.numeroColumnas){
Matriz r = new Matriz(this.numeroFilas,this.numeroColumnas);
int j;
int k;
for(int i = 0; i < this.numeroFilas; i++)
for(j = 0; j for(k=0; k r.matriz[i][j]+
=this.matriz[i][k]*B.matriz[k][j];
return r;
}
else{
Matriz r = new Matriz (1,1);
System .out.println("No se pueden multiplicar las matrices");
return r;
}
}

public Matriz clonar(){
Matriz r= new Matriz(this.numeroFilas, this.numeroColumnas);
int j;
for(int i = 0; i < this.numeroFilas; i++)
for(j = 0; j r.matriz[i][j]=this.matriz[i][j];
return r;
}
public Matriz transpueta(){
Matriz r = new Matriz(this.numeroColumnas,this.numeroFilas);
int j;
for (int i = 0; i < this.numeroFilas; i++)
for(j = 0; j < this.numeroColumnas;j++)
r.matriz[j][i] = this.matriz[i][j];
return r;
}

public Matriz inversa(){
Matriz result=new Matriz(this.numeroFilas,this.numeroColumnas);
double tmp;//variable temporal
Matriz I=new Matriz(this.numeroFilas,this.numeroColumnas*2);
for(int i = 0; i for(int j = 0; j I.matriz[i][j]=0.0;


for(int i = 0; i for(int j = 0; j I.matriz[i][j]=this.matriz[i][j];
if (i==j)
I.matriz[i][j+this.numeroFilas]=1.0;
}
}

for(int i=0; i<(this.numeroFilas); i++){
tmp=I.matriz[i][i];
for(int j=0;j<(this.numeroColumnas*2);j++)
I.matriz[i][j]/=tmp;
for(int k=0;k if(k!=i){
tmp=I.matriz[k][i];
for(int j=0;j<(this.numeroColumnas*2);j++)
I.matriz[k][j]-=tmp*I.matriz[i][j];
}
}
}

for(int i = 0; i < this.numeroFilas; i++)
for(int j = 0; j result.matriz[i][j]=I.matriz[i][j+this.numeroColumnas];
return result;
}
public Matriz multiplicaEscalar(double a){
Matriz r= new Matriz(this.numeroFilas, this.numeroColumnas);
for(int i = 0; i < this.numeroFilas; i++)
for(int j = 0; j r.matriz[i][j]= this.matriz[i][j]*a;
return r;

}
}

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 double productoEscalar(Vector x){
double resultado =0;
resultado=this.multiplica(x.transpueta()).matriz[0][0];
return resultado;
}

public static void main(String[] args){
Vector v = new Vector(3,3);
v.matriz[0][0]= 1;
v.matriz[0][1]= 0;
v.matriz[0][2]= 1;
System.out.println(v.imprimir());

Vector v1 = new Vector(3,3);
v1.matriz[0][0]= 1;
v1.matriz[0][1]= 2;
v1.matriz[0][2]= 3;
System.out.println(v1.imprimir());
System.out.println((v.suma(v1)).imprimir());
System.out.println("El producto vectorial");
System.out.println((v1.multiplica(v)).imprimir());
}