Está en la página 1de 14

INSTITUTO TECNOLÓGICO SUPERIOR DE FELIPE CARRILLO PUERTO

INGENIERÍA EN SISTEMAS COMPUTACIONALES

TÓPICOS AVANZADOS DE PROGRAMACIÓN

COMPONENTES Y LIBRERÍAS.

PRÁCTICA:

GRUPO
4A

JESUS MARTIN UN CHI

Página 1 de 14
INTRODUCCIÓN

Las clases en Java pueden agruparse en familias lógicas. A esto se le denominan


paquetes. Al igual que en .NET de Microsoft se utilizan los espacios de nombres
(namespaces), en Java se puede agrupar clases con funcionalidades lógicas
determinadas. Por default, muchas clases que vienen incluidas en Java pertenecen a un
paquete determinado. Por ejemplo, la clase String pertenece al paquete java.lang. En
este caso, para invocar el uso de String debería utilizar java.lang.String, sin embargo
esto es muy tedioso, por lo que al importar el paquete java.lang sólo es necesario utilizar
el nombre de la clase de la forma String nombre.

CONTENIDO DE LA UNIDAD.

2.1 Definición conceptual de componentes, paquetes / librerías.


2.2 Uso de librerías proporcionadas por el lenguaje.
2.3 Creación de componentes (visuales y no visuales) definidos por el usuario
2.4 Creación y uso de paquetes/librerías definidas por el usuario.

Página 2 de 14
• DESARROLLO

Práctica: CREACIÓN DE UN PAQUETE (PACKAGE) EN NETBEANS

Explica el desarrollo
Paso 1: Tendremos que crear un nuevo proyecto de tipo biblioteca de clase Java.

Paso 2: Posteriormente tendremos que ponerle el nombre de LibreriaMatematica.

Paso 3: Como consiguiente tendremos que crear un paquete Java, por lo que tendremos
que ubicarnos en el apartado de la biblioteca con el clic derecho seleccionamos nuevo y
paquete Java.

Paso 4: Ahora tendremos que pulsar sobre el nombre del paquete, presionamos clic
derecho del mouse, seleccionamos la creación de una nueva clase denominada
Aritmética.

Paso 5: Posteriormente codificamos las operaciones que debe hacer la clase Aritmética,
en este caso:

public class Aritmetica {


public double sumar (double a, double b){return a+b;}
public double restar (double a, double b){return a-b;}
public double multiplicar (double a, double b){return a*b;}
public double dividir (double a, double b){return a/b;} }

Paso 6: Procedemos a crear otra clase con el mismo procedimiento del paso 4. Esta vez
nombre una clase denominada Calculo.

Paso 7: Es importante generar el archivo JAR, que se utilizará en otra aplicación. Para
ello pulse con el botón derecho del mouse sobre el nombre del paquete y seleccione la
opción Generar.

Paso 8: Debemos cerrar el proyecto después que se haya generado el archivo JAR.

Página 3 de 14
Paso 9: Posteriormente se debe crear un nuevo proyecto de tipo escritorio, para anexar
y utilizar la biblioteca de clase antes creada. Denomine este proyecto como Calculadora.

Paso 10: Luego se tiene que agregar la librería de la clase, por lo que se tiene que
presionar sobre la carpeta librería del proyecto y seleccionar la opción Agregar
proyecto.

Paso 11: En el formulario principal de nuestra aplicación de escritorio, debemos colocar


dos objetos JTextField, con sus respectivas etiquetas.

Paso 12: Posteriormente se debe instanciar las clases que derivará de Aritmética y
Calculo.

Paso 13: Como penúltimo paso se debe seleccionar el evento actionPerfomed del botón
Sumar y Potencia, para ingresar líneas de código para ejecutarse, con sus respectivas
operaciones.

Paso 14: Como último paso debemos verificar si el programa corre con sus respectivas
operaciones, en caso contrario se debe corregir el error, posteriormente tendremos el
programa listo para su uso.

Código:
package calculadora;

import org.jdesktop.application.Action;
import org.jdesktop.application.ResourceMap;
import org.jdesktop.application.SingleFrameApplication;
import org.jdesktop.application.FrameView;
import org.jdesktop.application.TaskMonitor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;
import javax.swing.Icon;

Página 4 de 14
import javax.swing.JDialog;
import javax.swing.JFrame;

/**
* The application's main frame.
*/
public class CalculadoraView extends FrameView {

public CalculadoraView(SingleFrameApplication app) {


super(app);

initComponents();

// status bar initialization - message timeout, idle icon and busy animation, etc
ResourceMap resourceMap = getResourceMap();
int messageTimeout = resourceMap.getInteger("StatusBar.messageTimeout");
messageTimer = new Timer(messageTimeout, new ActionListener() {
public void actionPerformed(ActionEvent e) {
statusMessageLabel.setText("");
}
});
messageTimer.setRepeats(false);
int busyAnimationRate = resourceMap.getInteger("StatusBar.busyAnimationRate");
for (int i = 0; i < busyIcons.length; i++) {
busyIcons[i] = resourceMap.getIcon("StatusBar.busyIcons[" + i + "]");
}
busyIconTimer = new Timer(busyAnimationRate, new ActionListener() {
public void actionPerformed(ActionEvent e) {
busyIconIndex = (busyIconIndex + 1) % busyIcons.length;
statusAnimationLabel.setIcon(busyIcons[busyIconIndex]);
}
});
idleIcon = resourceMap.getIcon("StatusBar.idleIcon");
statusAnimationLabel.setIcon(idleIcon);
progressBar.setVisible(false);

// connecting action tasks to status bar via TaskMonitor


TaskMonitor taskMonitor = new TaskMonitor(getApplication().getContext());
taskMonitor.addPropertyChangeListener(new
java.beans.PropertyChangeListener() {
public void propertyChange(java.beans.PropertyChangeEvent evt) {
String propertyName = evt.getPropertyName();
if ("started".equals(propertyName)) {

Página 5 de 14
if (!busyIconTimer.isRunning()) {
statusAnimationLabel.setIcon(busyIcons[0]);
busyIconIndex = 0;
busyIconTimer.start();
}
progressBar.setVisible(true);
progressBar.setIndeterminate(true);
} else if ("done".equals(propertyName)) {
busyIconTimer.stop();
statusAnimationLabel.setIcon(idleIcon);
progressBar.setVisible(false);
progressBar.setValue(0);
} else if ("message".equals(propertyName)) {
String text = (String)(evt.getNewValue());
statusMessageLabel.setText((text == null) ? "" : text);
messageTimer.restart();
} else if ("progress".equals(propertyName)) {
int value = (Integer)(evt.getNewValue());
progressBar.setVisible(true);
progressBar.setIndeterminate(false);
progressBar.setValue(value);
}
}
});
}

@Action
public void showAboutBox() {
if (aboutBox == null) {
JFrame mainFrame = CalculadoraApp.getApplication().getMainFrame();
aboutBox = new CalculadoraAboutBox(mainFrame);
aboutBox.setLocationRelativeTo(mainFrame);
}
CalculadoraApp.getApplication().show(aboutBox);
}

/** 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.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">

Página 6 de 14
private void initComponents() {

mainPanel = new javax.swing.JPanel();


jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
txtValor1 = new javax.swing.JTextField();
txtValor2 = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
jButton1 = new javax.swing.JButton();
jButton2 = new javax.swing.JButton();
lblResultado = new javax.swing.JTextField();
menuBar = new javax.swing.JMenuBar();
javax.swing.JMenu fileMenu = new javax.swing.JMenu();
javax.swing.JMenuItem exitMenuItem = new javax.swing.JMenuItem();
javax.swing.JMenu helpMenu = new javax.swing.JMenu();
javax.swing.JMenuItem aboutMenuItem = new javax.swing.JMenuItem();
statusPanel = new javax.swing.JPanel();
javax.swing.JSeparator statusPanelSeparator = new javax.swing.JSeparator();
statusMessageLabel = new javax.swing.JLabel();
statusAnimationLabel = new javax.swing.JLabel();
progressBar = new javax.swing.JProgressBar();

mainPanel.setName("mainPanel"); // NOI18N

org.jdesktop.application.ResourceMap resourceMap =
org.jdesktop.application.Application.getInstance(calculadora.CalculadoraApp.class).get
Context().getResourceMap(CalculadoraView.class);
jLabel1.setText(resourceMap.getString("jLabel1.text")); // NOI18N
jLabel1.setName("jLabel1"); // NOI18N

jLabel2.setText(resourceMap.getString("jLabel2.text")); // NOI18N
jLabel2.setName("jLabel2"); // NOI18N

txtValor1.setText(resourceMap.getString("txtValor1.text")); // NOI18N
txtValor1.setName("txtValor1"); // NOI18N

txtValor2.setText(resourceMap.getString("txtValor2.text")); // NOI18N
txtValor2.setName("txtValor2"); // NOI18N

jLabel3.setText(resourceMap.getString("jLabel3.text")); // NOI18N
jLabel3.setName("jLabel3"); // NOI18N

jButton1.setText(resourceMap.getString("jButton1.text")); // NOI18N

Página 7 de 14
jButton1.setName("jButton1"); // NOI18N
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

jButton2.setText(resourceMap.getString("jButton2.text")); // NOI18N
jButton2.setName("jButton2"); // NOI18N
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});

lblResultado.setText(resourceMap.getString("lblResultado.text")); // NOI18N
lblResultado.setName("lblResultado"); // NOI18N

javax.swing.GroupLayout mainPanelLayout = new


javax.swing.GroupLayout(mainPanel);
mainPanel.setLayout(mainPanelLayout);
mainPanelLayout.setHorizontalGroup(

mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(mainPanelLayout.createSequentialGroup()

.addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
.addGroup(mainPanelLayout.createSequentialGroup()
.addContainerGap()

.addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING, false)
.addGroup(mainPanelLayout.createSequentialGroup()
.addComponent(jLabel1)
.addGap(18, 18, 18)
.addComponent(txtValor2))
.addGroup(mainPanelLayout.createSequentialGroup()
.addComponent(jLabel2)
.addGap(18, 18, 18)
.addComponent(txtValor1))
.addGroup(mainPanelLayout.createSequentialGroup()
.addComponent(jLabel3)

Página 8 de 14
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(lblResultado,
javax.swing.GroupLayout.PREFERRED_SIZE, 81,
javax.swing.GroupLayout.PREFERRED_SIZE))))
.addGroup(mainPanelLayout.createSequentialGroup()
.addGap(26, 26, 26)
.addComponent(jButton1)
.addGap(18, 18, 18)
.addComponent(jButton2)))
.addContainerGap(186, Short.MAX_VALUE))
);
mainPanelLayout.setVerticalGroup(

mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(mainPanelLayout.createSequentialGroup()
.addContainerGap()

.addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.
LEADING)
.addComponent(jLabel2)
.addComponent(txtValor1, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(11, 11, 11)

.addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.
BASELINE)
.addComponent(jLabel1)
.addComponent(txtValor2, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(30, 30, 30)

.addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.
BASELINE)
.addComponent(jLabel3)
.addComponent(lblResultado,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
43, Short.MAX_VALUE)

Página 9 de 14
.addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.
BASELINE)
.addComponent(jButton1)
.addComponent(jButton2))
.addGap(34, 34, 34))
);

menuBar.setName("menuBar"); // NOI18N

fileMenu.setText(resourceMap.getString("fileMenu.text")); // NOI18N
fileMenu.setName("fileMenu"); // NOI18N

javax.swing.ActionMap actionMap =
org.jdesktop.application.Application.getInstance(calculadora.CalculadoraApp.class).get
Context().getActionMap(CalculadoraView.class, this);
exitMenuItem.setAction(actionMap.get("quit")); // NOI18N
exitMenuItem.setName("exitMenuItem"); // NOI18N
fileMenu.add(exitMenuItem);

menuBar.add(fileMenu);

helpMenu.setText(resourceMap.getString("helpMenu.text")); // NOI18N
helpMenu.setName("helpMenu"); // NOI18N

aboutMenuItem.setAction(actionMap.get("showAboutBox")); // NOI18N
aboutMenuItem.setName("aboutMenuItem"); // NOI18N
helpMenu.add(aboutMenuItem);

menuBar.add(helpMenu);

statusPanel.setName("statusPanel"); // NOI18N

statusPanelSeparator.setName("statusPanelSeparator"); // NOI18N

statusMessageLabel.setName("statusMessageLabel"); // NOI18N

statusAnimationLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
statusAnimationLabel.setName("statusAnimationLabel"); // NOI18N

progressBar.setName("progressBar"); // NOI18N

Página 10 de 14
javax.swing.GroupLayout statusPanelLayout = new
javax.swing.GroupLayout(statusPanel);
statusPanel.setLayout(statusPanelLayout);
statusPanelLayout.setHorizontalGroup(

statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(statusPanelSeparator,
javax.swing.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)
.addGroup(statusPanelLayout.createSequentialGroup()
.addContainerGap()
.addComponent(statusMessageLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
226, Short.MAX_VALUE)
.addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(statusAnimationLabel)
.addContainerGap())
);
statusPanelLayout.setVerticalGroup(

statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(statusPanelLayout.createSequentialGroup()
.addComponent(statusPanelSeparator,
javax.swing.GroupLayout.PREFERRED_SIZE, 2,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addGroup(statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment
.BASELINE)
.addComponent(statusMessageLabel)
.addComponent(statusAnimationLabel)
.addComponent(progressBar,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(3, 3, 3))
);

setComponent(mainPanel);
setMenuBar(menuBar);

Página 11 de 14
setStatusBar(statusPanel);
}// </editor-fold>

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


// TODO add your handling code here:
double a= Double.parseDouble(txtValor1.getText());
double b= Double.parseDouble(txtValor2.getText());
double r=aux.sumar(a,b);
lblResultado.setText(String.valueOf(r));

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


// TODO add your handling code here:double a =
Double.parseDouble(txtValor1.getText());
double a= Double.parseDouble(txtValor1.getText());

double b = Double.parseDouble(txtValor2.getText());
double r = aux2.potencia(a,b);
lblResultado.setText(String.valueOf(r));
}
PaqueteMatematica.Aritmetica aux= new PaqueteMatematica.Aritmetica();
PaqueteMatematica.Calculo aux2=new PaqueteMatematica.Calculo();

// Variables declaration - do not modify


private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JTextField lblResultado;
private javax.swing.JPanel mainPanel;
private javax.swing.JMenuBar menuBar;
private javax.swing.JProgressBar progressBar;
private javax.swing.JLabel statusAnimationLabel;
private javax.swing.JLabel statusMessageLabel;
private javax.swing.JPanel statusPanel;
private javax.swing.JTextField txtValor1;
private javax.swing.JTextField txtValor2;
// End of variables declaration

private final Timer messageTimer;


private final Timer busyIconTimer;

Página 12 de 14
private final Icon idleIcon;
private final Icon[] busyIcons = new Icon[15];
private int busyIconIndex = 0;

private JDialog aboutBox;


}

Nota: respetar el tipo y tamaño de letra, 12 para código y 8 para mensaje del programador (//). No usar
imagen.

Conclusión de la actividad realizada

En esta practica podemos ver lo importante que son las librerías ya que agracias a eso
nos podemos ahorra bastante tiempo si ya tenemos creado o descargado algunas
librerías que puedan servirnos en el programa y la forma en que se implementa.

Página 13 de 14
CONCLUSIÓN GENERAL DE LA UNIDAD

En conclusión, podemos ver que usamos librería que creamos al principio para luego
poner la librería creado para sea de una manera más fácil para que así sea una buena
aplicación de librerías usando los paquetes son el mecanismo que usa Java para facilitar
la modularidad del código. Un paquete puede contener una o más definiciones de
interfaces y clases, distribuyéndose habitualmente como un archivo. Para utilizar los
elementos de un paquete es necesario importar este en el módulo de código en curso,
usando para ello la sentencia import.

• Las Interfaces de usuario, como vínculo de inmersión del hombre en el entorno de


trabajo tecnológico actual, realzan su importancia en el desarrollo de nuevos
productos, más eficaces, eficientes e interactivos, que es lo que el mercado demanda.

• Puntos, cómo los históricos y evolutivos, deben ser abordados de manera más
investigativa, recordemos que "conocer el pasado nos proyecta al futuro".

Página 14 de 14

También podría gustarte