Este documento describe un proyecto de una calculadora básica que realiza operaciones matemáticas como suma, resta, multiplicación, división y potenciación mediante el uso de librerías. Se creó una librería llamada "paquetematematica" con clases para operaciones aritméticas y avanzadas, la cual fue importada e implementada en un proyecto de calculadora para realizar cálculos. El proyecto de calculadora utiliza componentes de interfaz gráfica como botones, cajas de texto y etiquetas para permitir la interacción del usuario y mostrar
1. 1
Instituto Tecnológico Superior
de Felipe Carrillo Puerto
Informe Técnico de la unidad 3
Ingeniería en sistemas computacionales
Tópicos Avanzados de programación
Unidad 3. Componentes y librerías
Realizado por
Ángel Felipe Suaste Tuz
Carla Balam Méndez
Bella Areli Perez Gomez
Miriam Candelaria Poot Pech
Irving Saul Che Canul
Luis Antonio Chan Chuc
2. 2
Proyecto LibreriaMatematica
Código de la clase Aritmética
Código de la Clase Avanzado
Proyecto CalculadoraBasica
Codigo de la clase Calculadora
Conclusiones
Conclusiones Angel Felipe Suaste Tuz
Conclusiones Carla Balam Méndez
Conclusión general
3. 3
Proyecto LibreriaMatematica
El siguiente proyecto es la generación de una librería, la cual es implementada en otro proyecto
llamada CalculadoraBasica.
Código de la clase Aritmética
package paquetematematica; //paquete de la clase
public class Aritmetica { //inicio de la clase Aritmetica
//esta clase contiene 4 metodos, las cuales son operaciones aritmeticas basicas (suma, resta,
division y multiplicación), en cada metodo se pasan 2 parametros de tipo doouble.
//cada metodo retorna ya sea la suma, resta, division o multiplicacion de los 2 parametros.
public double suma (double a, double b){
return(a+b);
}
public double resta (double a, double b){
return(a-b);
}
public double producto (double a, double b){
return(a*b);
}
public double division (double a, double b){
return(a/b);
}
} // fin de la se Aritmética
4. 4
Código de la Clase Avanzado
package paquetematematica; //paquete de la clase
public class Avanzado { //inicio de la clase Avanzado
public double raiz(double a){ //metodo raiz, la cual tiene un argumento tipo double
return (Math.sqrt(a)); //llamada de la clase Math para calcular la raíz cuadrada
} //fin del método
public double potencia(double a, double b){ //inicio del metodo raiz con dos argumento tipo
double
return (Math.pow(a, b)); //uso de la clase Math y uso del método pow la cual calcula
lapotenciación de a elevado al exponente b
}
} //fin de la clase Avanzado
5. 5
Proyecto CalculadoraBasica
Codigo de la clase Calculadora
El siguiente proyecto es una calculadora básica que realiza operaciones como suma, resta,
división, multiplicación y potenciación. Introduciendo dos números.
package calculadorabasica; //paquete de la clase Calculadora
import paquetematematica.Aritmetica; //importe de la librería paquetematematica creada en el
proyecto LibreriaMatematica
public class Calculadora extends javax.swing.JFrame { //inicio de la clase Calculadora, la cual
es subclase de JFrame
double a, b; //declaracion de las variables a y b, que en su momento serán los argumentos
de los metodos de las clases Aritmetica y Avanzado
//las 2 siguiente lineas de codigo instancia 2 objetos, una para la clase Aritmetica y el otro de la
clase Avanzado (aux y aux2 respectivamente)
paquetematematica.Aritmetica aux= new paquetematematica.Aritmetica();
paquetematematica.Avanzado aux2= new paquetematematica.Avanzado();
public Calculadora() { //constructor de la clase
initComponents();
} //fin del constructor
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-
BEGIN:initComponents
//codigo generado por netbeans
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
txtn1 = new javax.swing.JTextField(); //caja de texto para el primer número
jLabel2 = new javax.swing.JLabel();
txtn2 = new javax.swing.JTextField(); //caja de texto para el segundo número
btnSuma = new javax.swing.JButton(); //botón suma
btnResta = new javax.swing.JButton(); //botón resta
btnProducto = new javax.swing.JButton(); //botón multiplicación
btnElevar = new javax.swing.JButton(); //botón potencia
6. 6
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
lblResultado = new javax.swing.JLabel(); //label de resultado
jButton1 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
//etiquetas para denotar el numero 1 y el numero 2
jLabel1.setText("Número 1:");
jLabel2.setText("Número 2: ");
btnSuma.setText("Suma"); //texto que aparece en el boton suma
btnSuma.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnSumaActionPerformed(evt);
}
});
btnResta.setText("Resta"); //boton de resta
btnResta.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnRestaActionPerformed(evt);
}
});
btnProducto.setText("Multiplicar"); //boton de multiplicacion
btnProducto.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnProductoActionPerformed(evt);
}
});
btnElevar.setText("Elevar"); //boton de potenciación
btnElevar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnElevarActionPerformed(evt);
}
});
jLabel3.setText("Bievenido a esta mini-aplicación");
jLabel4.setText("Resultado");
lblResultado.setText("Resultado");
7. 7
jButton1.setText("Salir"); //boton de salida
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});
//texto generado por netbeans para la configuración de la ventana de usuario
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(34, 34, 34)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addComponent(btnElevar)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButton1))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addComponent(jLabel1)
.addGap(18, 18, 18)
.addComponent(txtn1))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btnSuma)
.addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(24, 24, 24)
9. 9
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btnSuma)
.addComponent(btnResta)
.addComponent(btnProducto))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btnElevar)
.addComponent(jButton1))
.addGap(16, 16, 16))
);
pack();
}
//todo lo anterior es código generado por netbeans la cual sirve para la configuración de la
ventana de usuario
private void btnSumaActionPerformed(java.awt.event.ActionEvent evt) {
a = Double.parseDouble(txtn1.getText()); //obtiene el valor de la caja de texto para el
número1
b = Double.parseDouble(txtn2.getText()); /obtiene el valor de la caja de texto para el número
2
double sum = aux.suma(a, b); se declara la variable suma, la cual es igual al valor generado
por el método suma
lblResultado.setText(String.valueOf(sum)); //se muestra el valor de la variable suma en la
etiqueta resultado
}
private void btnRestaActionPerformed(java.awt.event.ActionEvent evt) {
a = Double.parseDouble(txtn1.getText()); //obtiene el valor de la caja de texto para el
número1
b = Double.parseDouble(txtn2.getText()); /obtiene el valor de la caja de texto para el número
2
double resta = aux.resta(a, b); se declara la variable resta, la cual es igual al valor
generado por el método resta
lblResultado.setText(String.valueOf(resta)); //se muestra el valor de la variable resta en la
etiqueta resultado
10. 10
}
private void btnProductoActionPerformed(java.awt.event.ActionEvent evt) {
a = Double.parseDouble(txtn1.getText()); //obtiene el valor de la caja de texto para el
número1
b = Double.parseDouble(txtn2.getText()); /obtiene el valor de la caja de texto para el número
2
double mul = aux.producto(a, b); // se declara la variable mul, la cual es igual al valor
generado por el método producto
lblResultado.setText(String.valueOf(mul)); //se muestra el valor de la variable mul en la
etiqueta resultado
}
private void btnElevarActionPerformed(java.awt.event.ActionEvent evt) {
a = Double.parseDouble(txtn1.getText()); //obtiene el valor de la caja de texto para el
número1
b = Double.parseDouble(txtn2.getText()); /obtiene el valor de la caja de texto para el número
2
double elevacion = aux2.potencia(a, b); // se declara la variable elevacion, la cual es igual
al valor generado por el método potencia
lblResultado.setText(String.valueOf(elevacion)); //se muestra el valor de la variable
elevacion en la etiqueta resultado
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0); //boton de salida
}
/**
* @param args the command line arguments
*/
//método main para llamar la Clase Calculadora
public static void main(String args[]) {
11. 11
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Calculadora.class.getName()).log(java.util.logging.Level.SEV
ERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Calculadora.class.getName()).log(java.util.logging.Level.SEV
ERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Calculadora.class.getName()).log(java.util.logging.Level.SEV
ERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Calculadora.class.getName()).log(java.util.logging.Level.SEV
ERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Calculadora().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton btnElevar;
private javax.swing.JButton btnProducto;
private javax.swing.JButton btnResta;
12. 12
private javax.swing.JButton btnSuma;
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel lblResultado;
private javax.swing.JTextField txtn1;
private javax.swing.JTextField txtn2;
// End of variables declaration//GEN-END:variables
}
Conclusiones
Conclusión Angel Felipe Suaste Tuz
En esta aplicación fue prácticamente la creación y el uso de una librería.
Fueron dos proyectos, uno fue la librería el otro fue un proyecto donde se utilizó la librería.
Crear una librería es sencillo es como crear una clase normal, solo se debe convertir en .jar par
luego importarlo en otros proyecto.
Utilizar una librería es sencillo, creamos un proyecto nos vamos a sus propiedades de proyecto
y allí importamos la librería.
Una vez importado allí solo basta usar la palabra import seguido del nombre de la librería en las
clases que usen dicha librería.
Conclusión Carla Balam Méndez
Esta aplicación se trata de una calculadora básica que realiza operaciones como suma, resta,
división, multiplicación y potenciación. En la cual implementamos una librería llamada
paquetematematica. hubo instancia de objetos, configuración de ventana de usuario por parte
de netbeans.
Se utilizó componentes que son elementos básicos de una interfaz gráfica. Ejemplos de
componentes son: los botones, las barras de desplazamiento, las etiquetas, las listas, las cajas
de selección o los campos de texto, entre otros.
Se utilizó los paquetes que son el mecanismo por el que Java permite agrupar clases,
interfaces, excepciones y constantes. De esta forma, se agrupan conjuntos de estructuras de
datos y de clases con algún tipo de relación en común.
Con la idea de mantener la reutilización y facilidad de uso de los paquetes desarrollados es
conveniente que las clases e interfaces contenidas en los mismos tengan cierta relación
funcional. De esta manera los desarrolladores ya tendrán una idea de lo que están buscando y
fácilmente sabrán qué pueden encontrar dentro de un paquete.
13. 13
Conclusión Bella Areli Perez Gomez
En la realización del programa se crearon y usaron librerías; Esta aplicación es de una
calculadora básica que realiza diversas operaciones. En la cual implementamos una
librería llamada paquetematematica.
Se implementaron métodos de elementos básicos de una interfaz gráfica para cuya
elaboración, ejemplo de ello serian listados. Botones, espacios de texto, introducción
de filas y columnas entre otros.
De igual manera se utilizaron diversos tipos de paquetes en el que java permite agrupar
clases con algún tipo de relación en común. La utilización de las paqueterías facilitaron
las líneas de código al igual que la lectura.
Es primordial que los paquetes estén relacionados.
Conclusión Miriam Candelaria Poot Pech
Para realizar este programa fue necesario implementar una librería llamada
paquetematematica, la cual fue necesaria para la creación del mismo, esta herramienta
es más que nada una ventaja para evitar escribir más líneas de código para realizar
las mismas operaciones, es decir cuando se realizan operaciones semejantes se puede
agrupar y comprimir en paquetes para poder usar solo las necesarias.
El uso de esta librería fue muy útil ya que esta aplicación es una calculadora que
resuelve operaciones básicas como suma, resta, multiplicación y división y
potenciación.
En este caso empleamos componentes siendo este los elementos básicos de una
interfaz gráfica, algunos ejemplos como:
Los botones, las barras de desplazamiento, las etiquetas, las listas, las cajas de
selección o los campos de texto, etc.
Los componentes permiten que el usuario pueda interactuar con el programa y de esta
manera proporcionar datos del programa al usuario.
También utilizamos paquetes una herramienta en el que Java permite agrupar clases
con algún tipo de relación en común, en general un paquete es un conjunto de operaciones que
se agrupan como una biblioteca de uso, es importante que tengan cierta relación funcional, de
esta manera será más fácil tener una idea de lo que contiene un paquete.
Conclusión Irving Saul Che Canul
En esta aplicación se utilizó la implementación de métodos, lo métodos en esta
aplicación fueron usados para asignar datos a los campos usados, de igual manera
14. 14
existen método propios de cada clase utilizada como los métodos de la clase table, en
este caso la implementaremos para la creación de filas y columnas.
El interfaz que se maneja permite la visualización de una forma más grafica para la
manipulación de los datos, existen partes que no pueden ser manipuladas por el
usuario final, los campos generados se almacenan en una base de datos, la cual fue
creado mediante arreglos. La utilización de paqueterías hizo más fácil la programación,
y la lectura de líneas de código.
· Usuarios
· Tablas
· Columnas
Entre otras fueron usadas para la pequeña tabla de empleados.
Conclusión Luis Antonio Chan Chuc
En esta aplicación se utilizó la interfaz gráfica al igual que la unidad anterior, la
diferencia es que en esta unidad es más avanzado, la aplicación se trata de una
calculadora que realiza operaciones básicas, en la cual se utilizó componentes y
librerías, como la librería “paquetematematica”, al igual se aplica lo que es instanciar
objetos; al igual se utilizó objetos gráficos como botones, barras de desplazamiento,
cajas de selección, etiquetas.
Así como va creciendo o dependiendo del tamaño de la aplicación se necesita reutilizar
ciertos componentes, esto es con la finalidad de mantener el orden de la codificación; y
es cuando se utilizan las librerías o (packeges). Estos paquetes deben de tener una
relación entre sí para que se pueda utilizar.
Conclusión general
Esta aplicación se trata de una calculadora básica que realiza operaciones como suma, resta,
división, multiplicación y potenciación. en la cual implementamos una librería llamada
paquetematematica.
En esta unidad la dimos continuidad al uso de componentes. Un componente es el elemento
básico de una interfaz gráfica. Los componentes permiten al usuario interactuar con la
aplicación y proporcionar información desde el programa al usuario sobre el estado de la
aplicación. Ejemplos de componentes son: los botones, las barras de desplazamiento, las
etiquetas, las listas, las cajas de selección o los campos de texto, entre otros.
15. 15
También utilizamos paquetes. Los paquetes en Java son una manera de organizar nuestras
clases, ya sea por finalidad, por su relación con la herencia que tienen, etc.
Pasos para crear una librería:
1. Crear un proyecto tipo librería en netbeans.
2. Se crean las clases y se modifican los métodos de las clases.
3. Una vez que este todo terminado se compila el proyecto, para detectar errores, si no tiene
errores se procede a convertir en archivo .jar el proyecto.
Usar una librería en un proyecto:
1. Se crea el proyecto.
2. Se importa la librería en las propiedades del proyecto.
3. En las clases donde se va a usar la librería se escribe import.
En cuanto a las librerías. Conforme empieza a crecer un desarrollo de Software surge la
necesidad de reutilizar ciertos componentes que ya han sido escritos, así como dar cierta
estructura para mantener una organización de código; al igual que otros lenguajes, esta
organización se lleva a cabo mediante librerías, denominadas "packages" en el mundo de
Java. .