Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Presentacion

311 views

Published on

  • Be the first to comment

  • Be the first to like this

Presentacion

  1. 1. PRESENTACION<br />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í:<br />frmPrincipal:<br />Pare esto se ha creado un contenedor en el frmPrincipal en donde podremos tener a los demás frames para esto se ha creado:<br />public class frmPrincipal extends javax.swing.JFrame {<br /> public frmPrincipal() {<br /> initComponents();<br /> setExtendedState(javax.swing.JFrame.MAXIMIZED_BOTH);<br />}<br />En la parte superior de este frame se han creado 4 items de menú <br />Los otros frames se llaman así:<br />frmCursos ofrmCursos = new frmCursos();<br /> pnlPrincipal.add(ofrmCursos);<br /> ofrmCursos.setVisible(true);<br />A continuación se explicara el frame curso el cual el principal para registrar a cada curso. <br />Para esto se ha creado al igual que en FrmAlumnos y frmNotas su respectivo modelo <br />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:<br />Los metodos que han sidomodificados son los siguientes:<br />getRowCount() {} devuelve el numero de filas<br />getColumnCount() {}devuelve el numero de columnas <br />getColumnName(int columnIndex) {} devuelve el numero de columnas<br />getValueAt(int rowIndex, int columnIndex) {}toma los valores que se encuentran en la tabla<br />isCellEditable(int rowIndex, int columnIndex) {}devuelve si puede ser o no editable<br />setValueAt(Object aValue, int rowIndex, int columnIndex) {}devuelve los valores de cada celda <br />if(aValue!= null) {<br />if(aValue.toString().isEmpty()) {<br /> datos.get(rowIndex).getNotas().get(columnIndex - 2).setValor(-1.0);<br /> }<br /> else {<br /> if(esnumero(aValue.toString())==true){<br /> datos.get(rowIndex).getNotas().get(columnIndex - 2).setValor (Double.parseDouble (aValue. toString( )));<br /> }<br /> Calculadora calculadora = new Calculadora();<br /> Double promedio = calculadora.Calcular(datos.get(rowIndex).getOCurso().getFormula(), datos.get(rowIndex).getNotas());<br /> datos.get(rowIndex).setPromedio(promedio);<br /> }<br /> fireTableCellUpdated(rowIndex, columnIndex);<br /> fireTableCellUpdated(rowIndex, datos.get(rowIndex).getNotas().size() + 2);<br /> }<br />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.<br />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.<br />Auxiliarmente hemos creido convenientemente crear <br /> public boolean esnumero(String numero){<br /> numero= numero.toUpperCase();<br /> int con=0;<br /> for (int i = 0; i < numero.length(); i++) {<br /> if(numero.substring(i, i+1).equals(".")//||numero(numero.substring(i, i+1))==false<br /> ){<br /> con=con+1;<br /> }<br /> }<br /> if(con>1){<br /> return false;<br /> }else{<br /> return true;<br /> }<br /> }<br />Este metodo es utilizado con elfin dequeen la tabla solo seingrese dato s doubles y no alla algun error como elde ingresar dobles puntos.<br />Parapoder entendermejor el proyectopsare a explicar el uso del frame notas:<br />public frmNotas() {<br /> initComponents();<br /> this.setLocation(Toolkit.getDefaultToolkit().getScreenSize().width / 2 - this.getWidth() / 2,Toolkit.getDefaultToolkit().getScreenSize().height / 2 - this.getHeight() / 2 );<br /> PresentarCursos();<br /> }<br /> private void PresentarCursos() {<br /> GestionNotas gestionNotas = new GestionNotas();<br /> try {<br /> cboCurso.setModel(new DefaultComboBoxModel(gestionNotas.ConsultarCursos("", "").toArray()));<br /> }<br /> catch(Exception e) {<br /> System.out.println("ERROR");<br /> }<br /> }<br />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() {}<br />Luego se llama al siguiente metodo;<br /> private void PresentarAlumnos() {<br /> GestionNotas gestionNotas = new GestionNotas();<br /> try {<br /> Curso curso = ((Curso)(cboCurso.getSelectedItem()));<br /> List<String> columnas = new ArrayList<String>();<br /> columnas.add("Codigo");<br /> columnas.add("Nombre");<br /> <br /> for(int i=0;i<curso.getTiposEvaluaciones().size();i++) {<br /> columnas.add(curso.getTiposEvaluaciones().get(i));<br /> }<br /> columnas.add("Promedio");<br /> tblNotas.setModel(new ModeloNotas(columnas , gestionNotas.ConsultarAlumnos("", "",(Curso)(cboCurso.getSelectedItem()))));<br /> //tblNotas.setModel(new ModeloNotas(columnas,gestionNotas.ConsultarAlumnos("", "",curso))));<br /> tblNotas.setDefaultRenderer(Object.class, new MiRender());<br /> <br /> }<br /> catch(Exception e) {<br /> System.out.println("ERROR1111");<br /> }<br /> }<br />Este metodo llama al modelo de alumnos y en este es presentado, a la vez se ha usado una clase por defauld de tabla:<br />public class MiRender extends DefaultTableCellRenderer {<br /> @Override<br />public Component getTableCellRendererComponent(JTable table,<br />Object value, boolean isSelected, boolean hasFocus, int row,<br />int column) {<br /> if(column>1){<br />Component cell = super.getTableCellRendererComponent(table, value,<br />isSelected, hasFocus, row, column);<br />//cell.setBackground(Color.BLUE);<br />if(value!=null){<br /> if(value.toString().compareTo("0")>=0 && value.toString().compareTo("10.5")<0<br /> )<br /> //Double.parseDouble(value.toString())>0&&Double.parseDouble(value.toString())<10.5)<br /> cell.setForeground(Color.red);<br /> else<br /> cell.setForeground(Color.blue);<br /> }<br /> return cell;<br /> }else{<br /> Component cell = super.getTableCellRendererComponent(table, value,<br />isSelected, hasFocus, row, column);<br />//cell.setBackground(Color.GREEN);<br />cell.setForeground(Color.BLACK);<br /> <br /> return cell;<br /> }<br />}<br /> }<br />En esta se le asigna colores a las notas si son 10 a 10.5 o 0 a 1 las muestra de color rojo.<br /> <br />

×