presentacion

9
PRESENTACION En el Paquete Presentación se ha creado cuatro frames, de los cuales tres depende de un principal llamado frmPrincipal el cual llama a los demás instanciándolos como se observa aquí: frmPrincipal: Pare esto se ha creado un contenedor en el frmPrincipal en donde podremos tener a los demás frames para esto se ha creado: public class frmPrincipal extends javax.swing.JFrame { public frmPrincipal() { initComponents(); setExtendedState(javax.swing.JFrame.MAXIMIZED_BOTH); } En la parte superior de este frame se han creado 4 items de menú

Upload: luiggi-inga-barboza

Post on 27-Jul-2015

195 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Presentacion

PRESENTACION

En el Paquete Presentación se ha creado cuatro frames, de los cuales tres depende de un principal llamado frmPrincipal el cual llama a los demás instanciándolos como se observa aquí:

frmPrincipal:

Pare esto se ha creado un contenedor en el frmPrincipal en donde podremos tener a los demás frames para esto se ha creado:

public class frmPrincipal extends javax.swing.JFrame {

public frmPrincipal() {

initComponents();

setExtendedState(javax.swing.JFrame.MAXIMIZED_BOTH);

}

En la parte superior de este frame se han creado 4 items de menú

Page 2: Presentacion

Los otros frames se llaman así:

frmCursos ofrmCursos = new frmCursos();

pnlPrincipal.add(ofrmCursos);

ofrmCursos.setVisible(true);

Page 3: Presentacion

A continuación se explicara el frame curso el cual el principal para registrar a cada curso.

Para esto se ha creado al igual que en FrmAlumnos y frmNotas su respectivo modelo

Page 4: Presentacion

En estemodelo en realidad es una clase hija de AbstractTableModel {} que esta en implementada en java,esta clase es modificada para luego ser utilizada en presentacion en su respectiva tabla:

Los metodos que han sidomodificados son los siguientes:

getRowCount() {} devuelve el numero de filas

getColumnCount() {}devuelve el numero de columnas

getColumnName(int columnIndex) {} devuelve el numero de columnas

getValueAt(int rowIndex, int columnIndex) {}toma los valores que se encuentran en la tabla

isCellEditable(int rowIndex, int columnIndex) {}devuelve si puede ser o no editable

setValueAt(Object aValue, int rowIndex, int columnIndex) {}devuelve los valores de cada celda

if(aValue!= null) {if(aValue.toString().isEmpty()) {

datos.get(rowIndex).getNotas().get(columnIndex - 2).setValor(-1.0); } else {

if(esnumero(aValue.toString())==true){ datos.get(rowIndex).getNotas().get(columnIndex - 2).setValor (Double.parseDouble (aValue. toString( ))); } Calculadora calculadora = new Calculadora(); Double promedio = calculadora.Calcular(datos.get(rowIndex).getOCurso().getFormula(), datos.get(rowIndex).getNotas());

datos.get(rowIndex).setPromedio(promedio); } fireTableCellUpdated(rowIndex, columnIndex); fireTableCellUpdated(rowIndex, datos.get(rowIndex).getNotas().size() + 2);

Page 5: Presentacion

}

Como podemos observar este es el metodo mas importante puesto q en el se ejecutara el promedio lamando a los metodos que se encuentran en la logica Negocios:”calculadora” y posteriormente promedio.Como vemos primero se evalua si se encuentran llenas las cedas de de la tabla y luego pasamos estos valores a la clase calculadora donde se devolvera el resultado promedio de la formula ya extraida.

Auxiliarmente hemos creido convenientemente crear

public boolean esnumero(String numero){ numero= numero.toUpperCase(); int con=0; for (int i = 0; i < numero.length(); i++) { if(numero.substring(i, i+1).equals(".")//||numero(numero.substring(i, i+1))==false ){ con=con+1; } } if(con>1){ return false; }else{ return true; } }

Este metodo es utilizado con elfin dequeen la tabla solo seingrese dato s doubles y no alla algun error como elde ingresar dobles puntos.Parapoder entendermejor el proyectopsare a explicar el uso del frame notas:

public frmNotas() { initComponents();

this.setLocation(Toolkit.getDefaultToolkit().getScreenSize().width / 2 - this.getWidth() / 2,Toolkit.getDefaultToolkit().getScreenSize().height / 2 - this.getHeight() / 2 );

PresentarCursos(); }

private void PresentarCursos() { GestionNotas gestionNotas = new GestionNotas(); try { cboCurso.setModel(new DefaultComboBoxModel(gestionNotas.ConsultarCursos("", "").toArray())); } catch(Exception e) { System.out.println("ERROR"); }

Page 6: Presentacion

}

En este metodo al tenerelcombo de alumnos se ha creado un combo por default seconsultan todos los cursos los cuales son agregadosen un array y a su vez sonpresentado en elframe medianteel combo con el metodo PresentarCursos() {}

Luego se llama al siguiente metodo; private void PresentarAlumnos() { GestionNotas gestionNotas = new GestionNotas();

try { Curso curso = ((Curso)(cboCurso.getSelectedItem()));

List<String> columnas = new ArrayList<String>();

columnas.add("Codigo"); columnas.add("Nombre"); for(int i=0;i<curso.getTiposEvaluaciones().size();i++) { columnas.add(curso.getTiposEvaluaciones().get(i)); }

columnas.add("Promedio"); tblNotas.setModel(new ModeloNotas(columnas , gestionNotas.ConsultarAlumnos("", "",(Curso)(cboCurso.getSelectedItem())))); //tblNotas.setModel(new ModeloNotas(columnas,gestionNotas.ConsultarAlumnos("", "",curso)))); tblNotas.setDefaultRenderer(Object.class, new MiRender()); } catch(Exception e) { System.out.println("ERROR1111"); } }

Este metodo llama al modelo de alumnos y en este es presentado, a la vez se ha usado una clase por defauld de tabla:

public class MiRender extends DefaultTableCellRenderer { @Override

public Component getTableCellRendererComponent(JTable table,Object value, boolean isSelected, boolean hasFocus, int row,int column) {

if(column>1){

Component cell = super.getTableCellRendererComponent(table, value,isSelected, hasFocus, row, column);

Page 7: Presentacion

//cell.setBackground(Color.BLUE);if(value!=null){

if(value.toString().compareTo("0")>=0 && value.toString().compareTo("10.5")<0 ) //Double.parseDouble(value.toString())>0&&Double.parseDouble(value.toString())<10.5) cell.setForeground(Color.red); else cell.setForeground(Color.blue); } return cell; }else{

Component cell = super.getTableCellRendererComponent(table, value,isSelected, hasFocus, row, column);

//cell.setBackground(Color.GREEN);cell.setForeground(Color.BLACK);

return cell; }

} }

En esta se le asigna colores a las notas si son 10 a 10.5 o 0 a 1 las muestra de color rojo.