Está en la página 1de 4

FUNDAMENTOS DE JAVA

Ejercicio: Obtener nombre, apellido, edad, sexo de varias personas; almacenar en una
tabla y procesar los datos y para obtener edad promedio, cantidad de masculinos y
femeninos.
En el diseño vemos con numeración en rojo el objeto y la referencia del nombre de
variable que le damos para adaptarse a los método que utilizaremos.
Diseño del formulario utilizando JFrame.
Como elementos utilizamos “Etiquetas”, “Botón”, “combo”, “Tabla” y “Campos de
Texto”.
Se puede cambiar el “Nombre de variable” de cada objeto haciendo clic derecho y
“Cambiar nombre de variable…”. Se puede usar la que se ajuste al código de más abajo.
Los campos de texto para resultados se puede indicar como deshabilitado, desmarcando
“enabled” en “Properties o Propiedades” de modo diseño. Para añadir valores al combo
o “JComboBox” en propiedades “Model” agregamos cada valor separado por comas,
estos valores serán estáticos.

Observación: Tomar en cuenta que hay que utilizar las importaciones “import”, básico
para utilizar ciertos métodos y objetos. El “setLocationRelativeTo(null)” sirve para
centrar el formulario. La declaración “DefaultTableModel model;” nos permite crear
una variable de clase para utilizar en cualquier método. Los método llamados en el
Constructor se ejecutan al arrancar el formulario, como “setLocationRelativeTo(null)” y
“tableModel()”.

JCVB 1
FUNDAMENTOS DE JAVA

Creamos los métodos siguientes en la pestaña “Source”. Estos métodos utilizan


conversiones de tipos de datos, controles de excepciones y demás para controlar lo
mejor posible el resultado.

public void tableModel(){


this.jTable1.getColumnModel().getColumn(0).setPreferredWidth(150);
this.jTable1.getColumnModel().getColumn(1).setPreferredWidth(50);
this.jTable1.getColumnModel().getColumn(2).setPreferredWidth(50);
model = (DefaultTableModel)this.jTable1.getModel();
model.setNumRows(0);
}
public void limpiar(){
tableModel();
this.txtnom.setText(null);
this.txtedad.setText(null);
this.cbosexo.setSelectedIndex(-1);
this.txtpromedioEdad.setText(null);
this.txttotalF.setText(null);
this.txttotalM.setText(null);
}
public void agregar(){
if( this.txtxnom.getText().isEmpty()){
JOptionPane.showMessageDialog(null, "Indique Nombre y
Apellido...");
}
else{
if(this.txtedad.getText().isEmpty()){
JOptionPane.showMessageDialog(null, "Indique la edad...");
}
else{
if(this.cbosexo.getSelectedIndex() == -1){
JOptionPane.showMessageDialog(null, "Seleccione
sexo...");
}
else{
try {
int edadNum =
Integer.parseInt(this.txtedad.getText());
Object selectedItem =
this.cbosexo.getSelectedItem();
String sexoN = selectedItem.toString();
model.addRow(new Object[]{
this.txtnom.getText(),edadNum,sexoN
});
limpiarAgregar();
procesarDatos();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "ERROR:
Verifique datos ingresados..." + e);
}
}
}
}
}
public void limpiarAgregar(){
this.txtnom.setText(null);
this.txtedad.setText(null);
this.cbosexo.setSelectedIndex(-1);
}
public void procesarDatos(){

JCVB 2
FUNDAMENTOS DE JAVA

if(this.jTable1.getRowCount()> 0){
int edadPromedio = 0;
int edadSuma = 0;
int numMasculino = 0;
int numFemenino = 0;
for (int i = 0; i < this.jTable1.getRowCount(); i++) {
Object valueAt = model.getValueAt(i, 1);
int edadT = Integer.parseInt(valueAt.toString());
edadSuma += edadT;
Object valueAt1 = model.getValueAt(i, 2);
if (valueAt1.toString().equals("Masculino")) {
numMasculino += 1;
}
else{
numFemenino += 1;
}
}
edadPromedio = edadSuma / this.jTable1.getRowCount();
this.txtpromedioEdad.setText(String.valueOf(edadPromedio));
this.txttotalF.setText(String.valueOf(numFemenino));
this.txttotalM.setText(String.valueOf(numMasculino));
}

}
public void obtenerFila(){
selectedRow = this.jTable1.getSelectedRow();
}
public void eliminarFila(){
if(selectedRow >= 0){
model.removeRow(selectedRow);
procesarDatos();
selectedRow = -1;
}

}
Utilizamos el evento “ActionPerformed” para llamar los métodos desde los botones en
este caso “Agregar”, “Eliminar” y “Limpiar”. Para la tabla utilizaremos el evento
“Mouse” específicamente “MouseClicked”, que nos permite obtener el número de fina
al hacer clic sobre ella y poder utilizar el botón eliminar. Para utilizar un “Evento”
hacemos clic derecho sobre el objeto y seleccionamos “Eventos” de la lista utilizamos la
que podamos aplicar al objeto. En la lista de evento vemos los comentarios
especificando a que objetos se aplican.
private void agregarActionPerformed(java.awt.event.ActionEvent
evt) {
agregar();// Evento para botón agregar
}

private void limpiarActionPerformed(java.awt.event.ActionEvent


evt) {
limpiar();// Evento para botón limpiar
}

private void eliminarActionPerformed(java.awt.event.ActionEvent


evt) {
eliminarFila();// Evento para botón eliminar
}

private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {

JCVB 3
FUNDAMENTOS DE JAVA

obtenerFila();// Evento tipo "MouseClicked" para la JTable1


}
En la imagen como queda al ejecutar el JFrame.

JCVB 4

También podría gustarte