Está en la página 1de 10

Materia:

Programacin III PROG3-V01


Seccin: 01

Profesor:

Ing. Ren Alberto Castro Velsquez

Alumno:

Evert Fernando Rivas Castillo

Carnet:

29-5588-2015

Tarea:

Tarea Individual Evaluacin No. 3.


Fecha: Martes 17 de Octubre de 2017.
ndice

Introduccin: ....................................................................................................................................... 4
Objetivo ............................................................................................................................................... 4
Enunciado del Problema ..................................................................................................................... 5
Cdigo. ................................................................................................................................................ 6
Capturas .............................................................................................................................................. 9
Conclusiones. .................................................................................................................................... 10
Bibliografa ........................................................................................................................................ 10
Introduccin:

Por medio de los conocimientos adquiridos en clases e investigaciones en internet se ha creado un


cdigo que sea similar al publicado por el docente en clases que cree una tabla y muestre el
nombre de los vendedores asi como tambin realice los clculos faltantes y mejore la presentacin
de la tabla ubicando los botones de forma horizontal con respecto al cuadro de interfaz grafica.

Objetivo

Crear un cdigo completo y funcional de manera eficaz que realice clculos complejos y
muestre la informacin de una tabla determinada con una interfaz grafica amigable para
el usuario.
Enunciado del Problema

Crear un cdigo similar al publicado en el aula de clases que complete los siguientes puntos:

1. Mostrar el nombre de los vendedores en la parte izquierda de la tabla para facilitar la


identificacin de las ventas.
2. Incluir los clculos faltantes.
3. Mejorar la presentacin colocando los botones debajo de la tabla pero en forma
horizontal.
Cdigo.
import javax.swing.table.AbstractTableModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.GridLayout;
import java.awt.Dimension;
import java.text.DecimalFormat;
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
.
public class EjemploTabla2 extends JPanel {
private JTable tabla;
.
public EjemploTabla2() {
super();
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
tabla = new JTable(new MiTablaModelo());
tabla.setPreferredScrollableViewportSize(new Dimension(500, 70));
tabla.setFillsViewportHeight(true);
add(new JScrollPane(tabla));
}
.
static class MiTablaModelo extends AbstractTableModel {
private String [] dias = {"Lunes", "Martes", "Mircoles", "Jueves", "Viernes", "Sbado", "Domingo"};
private String [] nombres = {"Pedro Hernndez", "Juan Cardona", "Ana Magaa", "Carlos Soriano", "Roberto
Durn", "Mara Lpez", "Luisa Tobar", "Jorge Escalante", "Roxana Flores", "Rosa Cea"};
.
Object [][] datos = {
{123.65, 113.23, 143.23, 131.34, 153.32, 195.34, 125.98},
{139.56, 139.39, 131.98, 183.47, 162.27, 150.06, 191.84},
{169.61, 191.91, 119.87, 132.71, 125.21, 107.61, 119.43},
{169.16, 129.29, 151.88, 133.77, 192.27, 160.76, 181.34},
{159.66, 179.89, 131.98, 198.47, 162.74, 110.55, 153.65},
{132.89, 139.76, 183.84, 136.31, 140.46, 171.62, 118.23},
{134.46, 145.23, 175.38, 153.73, 184.28, 179.42, 153.07},
{172.32, 149.72, 157.61, 128.61, 167.72, 137.71, 174.52},
{129.34, 148.63, 193.38, 138.28, 120.52, 154.16, 162.18},
{137.84, 174.58, 173.73, 117.37, 193.25, 137.15, 127.41}
};
.
public int getColumnCount() {
return dias.length;
}
.
public int getRowCount() {
return datos.length;
}
.
public String getColumnName(int col) {
return nombres[col];
}
.
public Object getValueAt(int fil, int col) {
return datos[fil][col];
}
}
.
static class Action1 implements ActionListener {
public void actionPerformed(ActionEvent e) {
MiTablaModelo modelo = new MiTablaModelo();
double total = 0.0, prom = 0.0;
String [] dias = modelo.dias;
String [] vendedores = modelo.nombres;
double vMenor = (double) modelo.getValueAt(0, 0);
int fila = 0, columna = 0, i, j;
.
for(i = 0; i < modelo.getRowCount(); i++) {
for(j = 0; j < modelo.getColumnCount(); j++) {
if (vMenor > (double) modelo.getValueAt(i, j)) {
vMenor = (double) modelo.getValueAt(i, j);
fila = i;
columna = j;
}
}
}
.
for(i = 0; i < modelo.getColumnCount(); i++) {
total += (double) modelo.getValueAt(i, columna);
}
prom = total / dias.length;
.
DecimalFormat formato = new DecimalFormat("#,##0.00");
.
String mensaje = "Venta menor = " + vMenor + "\nDa de la venta = " + dias[columna] + "\nVendedor = "
+ vendedores[fila] + "\nPromedio de ventas = " + formato.format(prom);
.
JOptionPane.showMessageDialog(null, mensaje, "Datos de la venta menor",
JOptionPane.INFORMATION_MESSAGE);
}
}
.
static class Action2 implements ActionListener {
public void actionPerformed(ActionEvent e) {
MiTablaModelo modelo = new MiTablaModelo();
double total = 0.0, prom = 0.0;
String [] dias = modelo.dias;
String [] vendedores = modelo.nombres;
double vMayor = (double) modelo.getValueAt(0, 0);
int fila = 0, columna = 0, i, j;
.
for(i = 0; i < modelo.getRowCount(); i++) {
for(j = 0; j < modelo.getColumnCount(); j++) {
if (vMayor < (double) modelo.getValueAt(i, j)) {
vMayor = (double) modelo.getValueAt(i, j);
fila = i;
columna = j;
}
}
}
.
for(i = 0; i < modelo.getColumnCount(); i++) {
total += (double) modelo.getValueAt(i, columna);
}
prom = total / dias.length;
.
DecimalFormat formato = new DecimalFormat("#,##0.00");
.
String mensaje = "Venta mayor = " + vMayor + " 'nDa de la semana = " + dias[columna] + " 'nVendedor
= " + vendedores[fila] + "\nPromedio de ventas = " + formato.format(prom);
.
JOptionPane.showMessageDialog(null, mensaje, "Datos de la venta mayor",
JOptionPane.INFORMATION_MESSAGE);
}
}
.
static class Action3 implements ActionListener {
public void actionPerformed(ActionEvent e) {
MiTablaModelo modelo = new MiTablaModelo();
double total = 0.0, prom = 0.0;
int i, j;
.
for(i = 0; i < modelo.getRowCount(); i++) {
for(j = 0; j < modelo.getColumnCount(); j++) {
total += (double) modelo.getValueAt(i, j);
}
}
.
prom = total / (modelo.getRowCount() * modelo.getColumnCount());
.
DecimalFormat df = new DecimalFormat("#,##0.00");
.
String mensaje = "Promedio general = " + df.format(prom);
.
JOptionPane.showMessageDialog(null, mensaje, "Promedio general de ventas",
JOptionPane.INFORMATION_MESSAGE);
}
}
.
private static void crearYMostrarGUI() {
JFrame marco = new JFrame("Tabla semanal de ventas");
marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
.
EjemploTabla2 panel = new EjemploTabla2();
marco.setContentPane(panel);
.
JButton mostrarVMenor = new JButton("Venta menor");
marco.add(mostrarVMenor.left);
mostrarVMenor.addActionListener(new Action1());
.
JButton mostrarVMayor = new JButton("Venta mayor");
marco.add(mostrarVMayor.center);
mostrarVMayor.addActionListener(new Action2());
.
// Botn para mostrar el promedio general de ventas
JButton mostrarProm = new JButton("Promedio total");
marco.add(mostrarProm.right);
mostrarProm.addActionListener(new Action3());
.
marco.pack();
marco.setLocationRelativeTo(null);
marco.setVisible(true);
}
.
public static void main(String [] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
crearYMostrarGUI();
}
});
}
}
Capturas
Conclusiones.
Por medio de la siguiente asignacin se ha creado un cdigo que funciona de manera eficaz y
compleja, con los conocimientos adquiridos en clases y nuestra propia investigacin en internet
que espero sea de acuerdo a lo solicitado en la asignacin de la evaluacin 3.

Bibliografa

1. http://www.forosdelweb.com/f45/alinear-botones-con-borderlayout-swing-830330/
2. http://solocodigo.com/47311/centrar-los-componentes-de-un-jframe/

También podría gustarte