presentacion
TRANSCRIPT
![Page 1: Presentacion](https://reader035.vdocuments.co/reader035/viewer/2022081511/55b5663abb61eb2e248b46b6/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022081511/55b5663abb61eb2e248b46b6/html5/thumbnails/2.jpg)
Los otros frames se llaman así:
frmCursos ofrmCursos = new frmCursos();
pnlPrincipal.add(ofrmCursos);
ofrmCursos.setVisible(true);
![Page 3: Presentacion](https://reader035.vdocuments.co/reader035/viewer/2022081511/55b5663abb61eb2e248b46b6/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022081511/55b5663abb61eb2e248b46b6/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022081511/55b5663abb61eb2e248b46b6/html5/thumbnails/5.jpg)
}
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](https://reader035.vdocuments.co/reader035/viewer/2022081511/55b5663abb61eb2e248b46b6/html5/thumbnails/6.jpg)
}
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](https://reader035.vdocuments.co/reader035/viewer/2022081511/55b5663abb61eb2e248b46b6/html5/thumbnails/7.jpg)
//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.