|
Mostrar Temas
|
Páginas: [1] 2
|
1
|
Programación / Java / Como paso datos entre varios jsp
|
en: 22 Mayo 2015, 10:29 am
|
hola, buenos dias, tengo que realizar una aplicacion para gestionar un almacen de provicncias y poblaciones: <a href=" http://imgur.com/v9ySUBS"><img src=" http://i.imgur.com/v9ySUBS.png" title="source: imgur.com" /></a> <a href=" http://imgur.com/BekJHxd"><img src=" http://i.imgur.com/BekJHxd.png" title="source: imgur.com" /></a> <a href=" http://imgur.com/jUepkrF"><img src=" http://i.imgur.com/jUepkrF.png" title="source: imgur.com" /></a> <a href=" http://imgur.com/Sykcl38"><img src=" http://i.imgur.com/Sykcl38.png" title="source: imgur.com" /></a> de momento estoy con la pagina que muestra las provincias y poblaciones en una tabla, llevo esto: <%@ page language="java" import="java.util.*"%> <%@ page language="java" import="almacen.*"%> <%@ page language="java" import="java.io.*"%> <%@ page language="java" import="paa.provincias.*"%> <html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es"> <head> <title>listaPoblaciones</title> <link rel="stylesheet" type="text/css" href="estilos.css" /> <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" /> </head> <body> <%@ page language="java" contentType="text/html; harset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <div id="lista"> <% AlmacenPoblaciones almacen = null; boolean balmacen; almacen = new AlmacenPoblaciones(); String path = getServletConfig (). getServletContext(). getRealPath(""); balmacen = almacen.recuperar(path + "\\WEB-INF\\almacen.dat"); int numProvincias = almacen.getProvincias().size(); String direccion = "http://localhost:8080/practica3/listaPoblaciones.jsp?"; if(!balmacen){ System. out. println("No se ha cargado el almacen"); } %> <h1>Lista de provincias almacenadas</h1> <h2>Se han recuperado <%=numProvincias%> provincias</h2> <h3>Pulse sobre el nombre de la provincia para ver las poblaciones</h3> <% Set<String> listaProvincias = almacen.getProvincias(); System. out. println("listaProvincias");%> <ul> <%for(String a : listaProvincias ){%> <li> Provincias: <a href=<%=direccion%>> <%=a%></a></li> <%}%> </ul> <% Enumeration<String> nombres = request.getParameterNames(); if(nombres.hasMoreElements()){ provincia = nombres.nextElement(); SortedSet<IPoblacion> listaPoblaciones = almacen.getPoblaciones(provincia); Iterator<IPoblacion> itr = listaPoblaciones.iterator(); Poblacion poblacion; if(itr.hasNext()){%> <table align=\center\> <tr><th>Provincia</th><th>Población</th><th>Habitantes</th><th>Código</th><th>Operación</th></tr> <%for(IPoblacion s : almacen.getPoblaciones(provincia)){ poblacion = (Poblacion) s;%> <tr><td><%=poblacion.getProvincia()%></td><td><%=poblacion.getNombre()%></td><td><%=poblacion.getHabitantes()%></td><td><%=poblacion.getCodigoAEMET()%></td><td><a href=borrar.jsp>Borrar</a></td></tr> <%}%> </table> <%}else{%> <h2>No hay poblaciones en: <%=provincia%></h2> <%}%> <%}%> </div> </body> </html>
el problema que tengo es que no se como borrar una poblacion, en el objeto almacen esta el metodo correspondiente al que hay que pasarle la poblacion y la provincia en la que la hay que borrar pero al ser un .jsp no se como debo de hacerlo, es posible saber si se ha pinchado en un href?, habia pensado en crear otro jsp al que le pase los datos pero no se como hacerlo y si seria correcto, alguna ayuda, gracias.
|
|
|
2
|
Programación / Java / Poner iconos en JTable
|
en: 17 Abril 2015, 15:22 pm
|
hola, quiero hacer una tabla para mostrar predicciones meteorologicas, la cual forma parte de una aplicacion: pero a la hora de actualizar las predicciones queda asi: lo curioso es que en el codigo del modelo: package principal; import java.util.Iterator; import javax.swing.table.AbstractTableModel; import paa.provincias.IPrediccion; /** * */ private static final long serialVersionUID = 1L; String columnas [] = {"Fecha", "Temp. Mínima", "Temp. Máxima", "Icono", "Estado del cielo"}; public java.util.List<IPrediccion> predicciones; int k = 0; for(int j = 0; j<5; j++){ data[0][j] = columnas[k]; k++; for(int i=1; i<8; i++){ } } } public int getColumnCount() { return columnas.length; } @Override public int getRowCount() { return data.length; } @Override public Object getValueAt (int row, int col ) { return data[row][col]; } public String getColumnName (int col ){ return columnas[col]; } public Class getColumnClass(int c){ return getValueAt(0,c).getClass(); } //public boolean isCellEditable(int row,int col){} public void setValueAt (Object value, int row, int col ){ data[row][col] = value; fireTableCellUpdated(row,col); } public void rellenar(java.util.List<IPrediccion> prediccion){ Iterator<IPrediccion> it; it = prediccion.iterator(); int i = 1; // si pongo 1 salen imagenes, si pongo 0 salen string wtf? int j; while (it.hasNext()){ //Recorremos la lista y colocamos en las celdas de cada fila los datos de las predicciones IPrediccion pre = it.next(); j=0; setValueAt(pre.getFecha(), i, j); j++; setValueAt(pre.getTemperaturaMinima(), i, j); j++; setValueAt(pre.getTemperaturaMaxima(), i, j); j++; setValueAt(pre.getIconoEstadoCielo(), i, j); j++; setValueAt(pre.getEstadoCielo(), i, j); j++; i++; } } }
y me da esto cuando pongo i a 1: lo cual es como deberia de estar pero desplazado una fila hacia debajo, alguien sabe donde esta el error?
|
|
|
3
|
Programación / Java / Aplicacion en swing para mostrar el tiempo de provincias y poblaciones
|
en: 12 Abril 2015, 16:05 pm
|
hola, estoy diseñando una aplicacion en swing que se tiene que conectar a la AEMET y descargar los datos de las poblaciones que previamente se le han añadido, el problema que tengo es con los componentes. En primer lugar este es el codigo: package principal; import java.awt.*; import java.awt.event.*; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JSplitPane; import javax.swing.JToolBar; import javax.swing.JTree; import javax.swing.SwingConstants; import javax.swing.WindowConstants; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultTreeModel; import Poblacion.VentanaBorrarPoblacion; import Poblacion.VentanaCrearPoblacion; import paa.provincias.GestorAEMET; import paa.provincias.GestorAEMETException; import paa.provincias.IPoblacion; import paa.provincias.IPoblacionAEMET; import paa.provincias.IPrediccion; /** * Fichero: InterfazAWT_AEMET.java Clase que implementa la Interfaz Gráfica * AEMET con awt. * * @author PAA * @version 1.0 */ public class InterfazAWT_AEMET extends JFrame { /** * */ private static final long serialVersionUID = 502635761186556414L; private static final String FICHERO = "almacen.dat"; private AlmacenPoblaciones almacen; // private IAlmacenPoblaciones almacenPoblaciones; private List listaPoblaciones = new List(); private List listaPredicciones = new List(); private List listaProvincias = new List(); private InterfazAWT_AEMET gui; private GestorAEMET gestor = new GestorAEMET(); private Aviso aviso; /** * Constructor. * * @throws GestorAEMETException */ public InterfazAWT_AEMET (String titulo, int ancho, int alto ) { super(titulo); setSize(ancho, alto); setLocationRelativeTo(null); setLayout (new BorderLayout()); // Layout de la aplicación, podría ser otro almacen = RecuperarAlmacenPoblaciones(); initComponents(); JFrame. setDefaultLookAndFeelDecorated(true); } public AlmacenPoblaciones RecuperarAlmacenPoblaciones() { // Recuperamos el almacén AlmacenPoblaciones almacenPoblaciones1 = new AlmacenPoblaciones(); if (almacenPoblaciones1.recuperar(FICHERO)){ Icon icono = new ImageIcon(getClass (). getResource("/iconos/check.png")); JOptionPane. showMessageDialog(null, "Recuperado el almacen del fichero " + FICHERO, "Recuperado", JOptionPane. INFORMATION_MESSAGE,icono ); }else{ JOptionPane. showMessageDialog(null, "No se ha podido recuperar el almacen del fichero" + FICHERO, "Error", JOptionPane. ERROR_MESSAGE); }return almacenPoblaciones1; } private void initComponents() { // Boton salir por defecto this. setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE); setJMenuBar(addJMenuBar()); //Create a split pane with the two scroll panes in it. splitPane.setDividerLocation(150); splitPane.setDividerSize(10); splitPane.setOneTouchExpandable(true); /* // Provide minimum sizes for the two components in the split pane Dimension minimumSize = new Dimension(100, 50); addPanelIzquierda().setMinimumSize(minimumSize); addpredicciones().setMinimumSize(minimumSize); // Set the initial location and size of the divider // Provide a preferred size for the split pane splitPane.setPreferredSize(new Dimension(400, 200));*/ } // Sitúo los menús desplegables // Creo el menú Archivo crearCargar.addActionListener(new Controller()); crearGuardar.addActionListener(new Controller()); salir.addActionListener(new Controller()); menuArchivo.add(crearCargar); menuArchivo.add(crearGuardar); menuArchivo.add(salir); // Creo el menú Provincias crearProvincias.addActionListener(new Controller()); borrarProvincias.addActionListener(new Controller()); menuProvincias.add(crearProvincias); menuProvincias.add(borrarProvincias); // Creo el menu Poblaciones crearPoblacion.addActionListener(new Controller()); borrarPoblacion.addActionListener(new Controller()); ordenarNombre.addActionListener(new Controller()); ordenarHabitantes.addActionListener(new Controller()); modPoblacion.addActionListener(new Controller()); movPoblacion.addActionListener(new Controller()); menuPoblaciones.add(crearPoblacion); menuPoblaciones.add(borrarPoblacion); menuPoblaciones.add(ordenarNombre); menuPoblaciones.add(ordenarHabitantes); menuPoblaciones.add(modPoblacion); menuPoblaciones.add(movPoblacion); // Creo el menú de ayuda acercaDe.addActionListener(new AcercaDe()); ayuda.add(acercaDe); // Crea el barraDeMenu.add(menuArchivo); barraDeMenu.add(menuProvincias); barraDeMenu.add(menuPoblaciones); barraDeMenu.add(ayuda); return barraDeMenu; } // Sitúo la línea de botones lineaDeBotones. setBackground(new Color(200, 100, 100)); // Boton crear provincia Icon Iprovincia = new ImageIcon(getClass (). getResource("/iconos/provincia.png")); proCrear.addActionListener(new Controller()); // Boton crear poblacion Icon Ipoblacion = new ImageIcon(getClass (). getResource("/iconos/poblacion.png")); poCrear.addActionListener(new Controller()); // Boton actualizar prediccion Icon actualizar = new ImageIcon(getClass (). getResource("/iconos/actualizar.png")); JButton aPrediccion = new JButton("Actualizar Predicción",actualizar ); aPrediccion.setToolTipText("Click para actualizar las predicciones"); aPrediccion.addActionListener(new Controller()); // Añadir los botones a la barra lineaDeBotones.add(proCrear); lineaDeBotones.add(poCrear); lineaDeBotones.add(aPrediccion); return lineaDeBotones; } private JTree addPanelIzquierda () { // Construccion del arbol // Construccion de los datos del arbol for(String s : almacen. getProvincias()){ int j = 0; modelo.insertNodeInto(provincia, provinciasPrincipal, j); j++; for(IPoblacion i : almacen.getPoblaciones(s)){ int x = 0; modelo.insertNodeInto(poblacion, provincia, x); x++; } } return tree; } private JPanel addpredicciones () { // Creamos el panel de las predicciones return predicciones; } private JPanel addlineaEstado () { // Sitúo la línea de estado lineaDeEstado. setBackground(new Color(0, 80, 80)); ventanaDeeventos. setForeground(new Color(200, 200, 60)); lineaDeEstado.add(ventanaDeeventos); return lineaDeEstado; } private void guardarAntesDeSalir() { // Guardar almacen almacen.guardar(FICHERO); System. out. println("Gracias por utilizar nuestro programa"); } String nombre = e. getActionCommand(); EvaluarAccion(nombre); } public void EvaluarAccion (String accion ) { switch (accion) { case "Guardar": almacen.guardar(FICHERO); JOptionPane. showMessageDialog(null, "El almacen ha sido guardado", "Guardado", DISPOSE_ON_CLOSE ); break; case "Cargar": almacen = RecuperarAlmacenPoblaciones(); break; case "Salir": break; case "Crear provincia": if((crearProvincia != null)&&(!crearProvincia.equals(""))){ almacen.addProvincia(crearProvincia); }else{ JOptionPane. showMessageDialog(null, "Error al crear provincia", "Error", DISPOSE_ON_CLOSE ); } break; case "Borrar provincia": if((borrarProvincia != null)&&(!borrarProvincia.equals(""))){ almacen.delProvincia(borrarProvincia); }else{ JOptionPane. showMessageDialog(null, "Error al borrar provincia", "Error", DISPOSE_ON_CLOSE ); } break; case "Crear poblacion": break; case "Borrar poblacion": new VentanaBorrarPoblacion(gui,almacen,listaPoblaciones,listaProvincias,listaPredicciones).setVisible(true); break; case "Ordenar por nombre": /*almacen.ordenarPor(listaProvincias.getSelectedItem(), almacen.ORDENARPORNOMBRE); listaProvincias.removeAll(); Iterator<IPoblacion> i = almacen.getPoblaciones(listaProvincias.getSelectedItem()).iterator(); while(i.hasNext()){ i.next(); listaProvincias.add(i.next().getNombre()); }*/ break; case "Ordenar por habitantes": /*almacen.ordenarPor(listaProvincias.getSelectedItem(), almacen.ORDENARPORHABITANTES); listaProvincias.removeAll(); for(IPoblacion p : almacen.getPoblaciones(listaProvincias.getSelectedItem())){ listaProvincias.add(p.getNombre()); }*/ break; case "Modificar poblacion": break; case "Mover poblacion": break; case "Actualizar Predicción": IPoblacion poblacion = almacen.getPoblacion(listaProvincias.getSelectedItem(), listaPoblaciones.getSelectedItem()); try { listaPredicciones.removeAll(); for(IPrediccion p : gestor.getPredicciones((IPoblacionAEMET) poblacion)){ listaPredicciones.add(p.getFecha() + " : " + p.getEstadoCielo() + " : " + p.getTemperaturaMaxima() + " : " + p.getTemperaturaMinima()); } } catch (GestorAEMETException e) { new Aviso(gui,e.getMessage()); } break; case "Acerca de" : new VentanaAcercaDe(gui); break; } } } /** * Clase que implementa la acción del menú "acerca de". */ VentanaAcercaDe ventanaAcercaDe = new VentanaAcercaDe( InterfazAWT_AEMET.this); ventanaAcercaDe.setVisible(true); } }// Acerca de /** * Método main. * @throws GestorAEMETException */ public static void main (String[] args ) throws GestorAEMETException { InterfazAWT_AEMET mimarco = new InterfazAWT_AEMET("Gestor AEMET", 1000, 500); mimarco.setDefaultCloseOperation(DISPOSE_ON_CLOSE); mimarco.setVisible(true); } // Main }
el cual dibuja esto: tengo el jsplitpane definido para que actue entre el jtree y el panel predicciones el cual tengo que sustituir por una jtable pero parece que no actua por que no aparece en la aplicacion. tambien en los dialogos de la clase controller: if((borrarProvincia != null)&&(!borrarProvincia.equals(""))){ almacen.delProvincia(borrarProvincia); }else{ JOptionPane. showMessageDialog(null, "Error al borrar provincia", "Error", DISPOSE_ON_CLOSE ); }
quiero modificar lo que pone en los botones para que cuando se pulsa el boton añadir provincia en vez de salir los botones aceptar y cancelar, salgan crear y cancelar tambien necesito que al pulsar en una poblacion del jtree se cargue en la tabla de la derecha los datos de las predicciones si ya hubiera pulsado el boton actualizar prediccion al menos una vez para evitar que al pulsar en cada poblacion conecte con AEMET Y utilize mas ancho de banda y por ultimo nos han dicho que la utilizacion del springlayout mejora la interfaz pero no me apaño muy bien a la hora de usarlo con los dialogos crear poblacion
|
|
|
4
|
Programación / Java / Mostrar List al pulsar en un elemento de otra List en AWT
|
en: 28 Marzo 2015, 16:11 pm
|
Hola, necesito crear una aplicacion para informar del tiempo de las provincias que se vayan añadiendo y tengo un problema a la hora de configurar la pantalla del programa: Lo que debo de hacer es que al pulsar en una provincia automaticamente en la lista de debajo aparezcan las poblaciones creadas en esa provincia y que si hago doble click en una provincia en el panel de la derecha me aparezcan los datos relacionados con las predicciones, mis clases son estas: La principalpackage principal; import java.awt.*; import java.awt.event.*; import Poblacion.VentanaBorrarPoblacion; import Poblacion.VentanaCrearPoblacion; import Provincia.VentanaBorrarProvincia; import Provincia.VentanaCrearProvincia; import paa.provincias.GestorAEMET; import paa.provincias.GestorAEMETException; import paa.provincias.IPoblacion; /** * Fichero: InterfazAWT_AEMET.java Clase que implementa la Interfaz Gráfica * AEMET con awt. * * @author PAA * @version 1.0 */ public class InterfazAWT_AEMET extends Frame { /** * */ private static final long serialVersionUID = 502635761186556414L; private static final String FICHERO = "almacen.dat"; private AlmacenPoblaciones almacen; // private IAlmacenPoblaciones almacenPoblaciones; private List listaPoblaciones = new List(); private List listaPredicciones = new List(); private List listaProvincias = new List(); private InterfazAWT_AEMET gui; /** * Constructor. * * @throws GestorAEMETException */ public InterfazAWT_AEMET (String titulo, int ancho, int alto ) { super(titulo); setSize(ancho, alto); setLocationRelativeTo(null); setLayout (new BorderLayout()); // Layout de la aplicación, podría ser otro almacen = RecuperarAlmacenPoblaciones(); System. out. println(almacen. getProvincias()); initComponents(); for(String provincia : almacen. getProvincias()){ listaProvincias.add(provincia); /*if(listaProvincias.getSelectedItem()==null){ listaPoblaciones.add(almacen.getPoblaciones(listaProvincias.getSelectedItem())); } for(IPoblacion s : almacen.getPoblaciones(listaProvincias.getSelectedItem())){ }*/ } //Imprimimos provincias y poblaciones en las listas } public AlmacenPoblaciones RecuperarAlmacenPoblaciones() { // Recuperamos el almacén AlmacenPoblaciones almacenPoblaciones1 = new AlmacenPoblaciones(); if (almacenPoblaciones1.recuperar(FICHERO)) System. out. println("Recuperado el almacen del fichero " + FICHERO ); else System. out. println("No se pudo recuperar el almacen del fichero "+ FICHERO ); return almacenPoblaciones1; } private void initComponents() { // Boton salir por defecto guardarAntesDeSalir(); } }); setMenuBar(addMenuBar()); } // Sitúo los menús desplegables // Creo el menú Archivo crearCargar.addActionListener(new Controller()); crearGuardar.addActionListener(new Controller()); salir.addActionListener(new Controller()); menuArchivo.add(crearCargar); menuArchivo.add(crearGuardar); menuArchivo.add(salir); // Creo el menú Provincias Menu menuProvincias = new Menu("Provincias"); crearProvincias.addActionListener(new Controller()); borrarProvincias.addActionListener(new Controller()); menuProvincias.add(crearProvincias); menuProvincias.add(borrarProvincias); // Creo el menu Poblaciones Menu menuPoblaciones = new Menu("Poblaciones"); crearPoblacion.addActionListener(new Controller()); borrarPoblacion.addActionListener(new Controller()); ordenarNombre.addActionListener(new Controller()); ordenarHabitantes.addActionListener(new Controller()); modPoblacion.addActionListener(new Controller()); movPoblacion.addActionListener(new Controller()); menuPoblaciones.add(crearPoblacion); menuPoblaciones.add(borrarPoblacion); menuPoblaciones.add(ordenarNombre); menuPoblaciones.add(ordenarHabitantes); menuPoblaciones.add(modPoblacion); menuPoblaciones.add(movPoblacion); // Creo el menú de ayuda acercaDe.addActionListener(new AcercaDe()); ayuda.add(acercaDe); // Crea el barraDeMenu.add(menuArchivo); barraDeMenu.add(menuProvincias); barraDeMenu.add(menuPoblaciones); // Sitúo el menú de ayuda en su sitio barraDeMenu.setHelpMenu(ayuda); return barraDeMenu; } private Panel addToolBar () { // Sitúo la línea de botones lineaDeBotones. setBackground(Color. lightGray); // Boton crear provincia proCrear.addActionListener(new Controller()); // Boton crear poblacion poCrear.addActionListener(new Controller()); // Boton actualizar prediccion aPrediccion.addActionListener(new Controller()); // Añadir los botones a la barra lineaDeBotones.add(proCrear); lineaDeBotones.add(poCrear); lineaDeBotones.add(aPrediccion); return lineaDeBotones; } private Panel addPanelIzquierda () { // Creamos panel para mostrar provincias y poblaciones y lo colocamos a // la izquierda izquierda.add(lProvincia); izquierda.add(listaProvincias); izquierda.add(lPoblacion); izquierda.add(listaPoblaciones); return izquierda; } private Panel addpredicciones () { // Creamos el panel de las predicciones Label lPrediccion = new Label("Predicciones de :"); return predicciones; } private Panel addlineaEstado () { // Sitúo la línea de estado lineaDeEstado. setBackground(Color. lightGray); Label ventanaDeeventos = new Label("Gestor AEMET v1.0 (PAA)"); lineaDeEstado.add(ventanaDeeventos); return lineaDeEstado; } private void guardarAntesDeSalir() { // Guardar almacen almacen.guardar(FICHERO); System. out. println("Gracias por utilizar nuestro programa"); } String nombre = e. getActionCommand(); EvaluarAccion(nombre); } public void EvaluarAccion (String accion ) { switch (accion) { case "Guardar": almacen.guardar(FICHERO); Aviso guardar = new Aviso(gui, "Archivo guardado"); break; case "Salir": break; case "Crear provincia": new VentanaCrearProvincia(gui,almacen,listaPoblaciones,listaProvincias,listaPredicciones).setVisible(true); break; case "Borrar provincia": new VentanaBorrarProvincia(gui,almacen,listaPoblaciones,listaProvincias,listaPredicciones).setVisible(true); break; case "Crear poblacion": new VentanaCrearPoblacion(gui,almacen,listaPoblaciones,listaProvincias,listaPredicciones).setVisible(true); break; case "Borrar poblacion": new VentanaBorrarPoblacion(gui,almacen,listaPoblaciones,listaProvincias,listaPredicciones).setVisible(true); break; case "Ordenar por nombre": break; case "Ordenar por habitantes": break; case "Modificar poblacion": break; case "Mover poblacion": break; } } } /** * Clase que implementa la acción del menú "acerca de". */ VentanaAcercaDe ventanaAcercaDe = new VentanaAcercaDe( InterfazAWT_AEMET.this); ventanaAcercaDe.setVisible(true); } }// Acerca de /** * Método main. * @throws GestorAEMETException */ public static void main (String[] args ) throws GestorAEMETException { InterfazAWT_AEMET mimarco = new InterfazAWT_AEMET("Gestor AEMET", 1000, 500); mimarco.setVisible(true); } // Main }
La que crea provincia:package Provincia; import java.awt.Button; import java.awt.Dialog; import java.awt.Frame; import java.awt.GridLayout; import java.awt.Label; import java.awt.List; import java.awt.Panel; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import principal.AlmacenPoblaciones; import principal.Aviso; public class VentanaCrearProvincia extends Dialog { private AlmacenPoblaciones almacen; private List listaPoblaciones ; private List listaPredicciones ; private List listaProvincias ; private static final long serialVersionUID = -2530069431684593677L; public VentanaCrearProvincia (Frame gui, AlmacenPoblaciones almacen, List listaPoblaciones, List listaProvincias, List listaPredicciones ) { super(gui); this.almacen = almacen; this.listaPoblaciones = listaPoblaciones; this.listaProvincias = listaProvincias; this.listaPredicciones = listaPredicciones; initComponents(gui); } public void initComponents (Frame gui ){ cancelar = new Button("Cancelar"); setLocationRelativeTo(gui); this.setTitle("Crear Provincia"); this.setSize(300, 100); panel.add(label); panel.add(textField); panel.add(crear); panel.add(cancelar); crear.addActionListener(new Controller()); cancelar.addActionListener(new Controller()); this.add(panel); VentanaCrearProvincia.this.dispose(); } }); } String label = e. getActionCommand(); if(label.equals("Crear")){ try{ almacen.addProvincia(textField.getText()); listaProvincias.removeAll(); for(String provincia : almacen. getProvincias()){ listaProvincias.add(provincia); } System. out. println(almacen. getProvincias()); VentanaCrearProvincia.this.dispose(); Aviso aviso = new Aviso(VentanaCrearProvincia.this,e1.getMessage()); } }else{ VentanaCrearProvincia.this.dispose(); } } } }
y la que crea poblacionpackage Poblacion; import java.awt.BorderLayout; import java.awt.Button; import java.awt.Dialog; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.GridLayout; import java.awt.Label; import java.awt.List; import java.awt.Panel; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import paa.provincias.IPoblacion; import principal.AlmacenPoblaciones; import principal.Aviso; import principal.Poblacion; public class VentanaCrearPoblacion extends Dialog { private AlmacenPoblaciones almacen; private List listaPoblaciones ; private List listaPredicciones ; private List listaProvincias ; private static final long serialVersionUID = 1434307119439314094L; public VentanaCrearPoblacion (Frame gui, AlmacenPoblaciones almacen, List listaPoblaciones, List listaProvincias, List listaPredicciones ) { super(gui); this.almacen = almacen; this.listaPoblaciones = listaPoblaciones; this.listaProvincias = listaProvincias; this.listaPredicciones = listaPredicciones; if(listaProvincias.getSelectedItem() != null){ initComponents(gui); }else{ Aviso aviso = new Aviso(gui,"Selecciona una provincia"); gui.dispose(); } } public void initComponents (Frame gui ){ setLocationRelativeTo(gui); this.setTitle("Crear Poblacion"); this.setSize(300, 200); cancelar = new Button("Cancelar"); Label nombreP = new Label(listaProvincias. getSelectedItem()); crear.addActionListener(new Controller()); cancelar.addActionListener(new Controller()); texto.add(nombre); texto.add(nombreP); texto.add(habitantes); texto.add(codigo); panel.add(crear); panel.add(cancelar); VentanaCrearPoblacion.this.dispose(); } }); } private VentanaCrearPoblacion gui; String label = e. getActionCommand(); if(label.equals("Crear")){ try{ IPoblacion poblacion = new Poblacion (nombre. getText(), Integer. parseInt(habitantes. getText()), listaProvincias. getSelectedItem(), codigo. getText()); almacen.addPoblacion(listaProvincias.getSelectedItem(),poblacion); //listaPoblaciones2.removeAll(); for(IPoblacion p : almacen.getPoblaciones(listaProvincias.getSelectedItem())){ listaPoblaciones.add(poblacion.getNombre()); } VentanaCrearPoblacion.this.dispose(); Aviso aviso = new Aviso(gui,e1.getMessage()); } }else{ VentanaCrearPoblacion.this.dispose(); } } } }
las demas clases no importan ya que son de practicas anteriores o ya me las dan implementadas, en lo que dudo es a la hora de añadir la poblacion, he pensado que la clase ventanaCrearPoblacion solo debe de añadir la poblacion al almacen y que la clase que se debe de encargar de que al pulsar una provincia se muestrren las poblaciones asociadas debe de ser la principal
|
|
|
5
|
Programación / Java / Meter un Frame dentro de otro Frame
|
en: 12 Marzo 2015, 19:35 pm
|
Hola, tengo que crear una aplicacion que de informacion sobre el tiempo y necesito crear esto: y necesito esto: la organizacion del frame es borderlayout y habia pensado en poner en la parte izquierda otro layout divido en 2 pero no se como hacerlo
|
|
|
6
|
Programación / Java / Utilizacion de CompareTo en objetos dentro de un Set
|
en: 8 Marzo 2015, 13:33 pm
|
Hola, tengo que hacer una practica de un almacen de poblaciones, en el cual, las poblaciones se almacenan en un set el cual esta asociado a un string que es la provincia a la que pertenecen, todo se guarda en un mapa en el que el string de la provincia es la clave y el Set es el valor, he codificado todos los metodos, para añadir poblaciones, quitarlas, guardarlo en un archivo, leerlo etc, pero ahora tengo este metodo: public boolean ordenarPor (String provincia, int ordenarPor )
al cual se le pueden pasar 2 constantes para ordenar por habitantes o por nombre de poblacion, llevo esto codificado: public boolean ordenarPor (String provincia, int ordenarPor ) { if(provincia != null || ordenarPor != ORDENARPORNOMBRE || ordenarPor != ORDENARPORHABITANTES ){ if(ordenarPor == ORDENARPORNOMBRE){ Set<IPoblacion> spoblacion = Aprovincias.get(provincia); System. out. println(spoblacion ); }else if(ordenarPor == ORDENARPORHABITANTES){ } return true; } return false; }
por defecto todas las poblaciones hacen uso del metodo CompareTo en el que digo que deben de ordenar las poblaciones por el valor nombre de cada una, pero lo que no se es como ordenarlas por otro valor, me he quedado otra clase en la que tambien implemento la interfaz compareTo y sobreescribo el metodo para ordenar por habitantes, pero no se utilizarlo
|
|
|
7
|
Programación / Java / Meter un Set en un Map
|
en: 27 Febrero 2015, 14:43 pm
|
Hola, necesito crear un almacen de provincias, las cuales a su vez tienen poblaciones asociadas, tiene que hacerse con un map en el que la clave es el nombre de la provincia y el valor un set con las poblaciones, hasta ahi todo bien, el problema lo tengo en añadir las poblaciones al set que no se como hacerlo ya que tengo que pasar por el map antes, tengo esta clase: Map<String, Set<Poblacion>> Aprovincias = new HashMap<String, Set<Poblacion>>(); public boolean addPoblacion (String provincia, IPoblacion poblacion ) { boolean res = false; if(!!Aprovincias.containsValue(provincia)){ res = false; System. out. println("La Provincia no existe, creela antes de añadir poblacion"); }else{ //Aprovincias.put(provincia, ); Aqui es donde tengo el problema, ya que no se que hacer } return res; }
|
|
|
8
|
Programación / Java / pasar un objeto a un objeto, es posible??
|
en: 11 Marzo 2014, 11:52 am
|
hola, estoy haciendo un ejercicio de la uni en el que hay que dibujar una serie de rectangulos, tengo tres clases, vector, muro y el main: vector: private final int N; // length of the vector private double[] data; // array of vector's components /** * create the zero vector of length N * @param N Vector length. */ this.N = N; this.data = new double[N]; } /** * create a vector from either an array or a vararg list * this constructor uses Java's vararg syntax to support * a constructor that takes a variable number of arguments, such as * Vector x = new Vector(1.0, 2.0, 3.0, 4.0); * Vector y = new Vector(5.0, 2.0, 4.0, 1.0); * @param data Initial value of the vector. */ public Vector(double... data) { N = data.length; // defensive copy so that client can't alter our copy of data[] this.data = new double[N]; for (int i = 0; i < N; i++) this.data[i] = data[i]; } //*metodos*/
muro: public class Muro { public static final double NO_IMPACTO = 999.0; /** * Crea un muro. * * @param Vector - con las coordenadas del centro del muro. * @param Vector - con las dimensiones del muro (semianchura, semialtura). */ this.posicion = posicion; this.dimensiones = dimensiones;
main: import java.awt.*; public class Main { public static void main (String[] args ) { Muro muro[5]; int i; muro[0]= new Muro(0, .5, .005, .5); muro[1]= new Muro(.5, 1, .505, .005); muro[2]= new Muro(1, .5, .005, .5); muro[3]= new Muro(.5, .65, .005, .2); muro[4]= new Muro(.25, .1, .2, .005);
el caso es que necesito crear 5 muros al inicio del programa pero me dice eclipse que no le puedo pasar esos parametros, que en el constructor no estan declarados, pero si el constructor de muro tiene como parametros 2 vectores y estos a su vez tienen cada uno 2 valores por que no puedo meter 4 valores al constructor? como se le pueden pasar correctamente?
|
|
|
9
|
Programación / Scripting / script en python con bucle, ayuda
|
en: 7 Marzo 2014, 18:47 pm
|
hola, soy novato en esto de los script y mas en python que nunca lo he visto, se C y java, el caso es que quiero crear un script con una funcionalidad muy basica: from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import Select from selenium.common.exceptions import NoSuchElementException import unittest, time, re class Prueba3(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() self.driver.implicitly_wait(30) self.base_url = "http://playfulbet.com/usuarios/" self.verificationErrors = [] self.accept_next_alert = True def test_prueba3(self): for b = 4 i="1" driver = self.driver driver.get(self.base_url + i) driver.find_element_by_link_text("Entra y juega").click() driver.find_element_by_link_text("Logueate").click() driver.find_element_by_name("commit").click() driver.find_element_by_id("follow").click() driver.find_element_by_css_selector("#add_friend > b").click() def is_element_present(self, how, what): try: self.driver.find_element(by=how, value=what) except NoSuchElementException, e: return False return True def is_alert_present(self): try: self.driver.switch_to_alert() except NoAlertPresentException, e: return False return True def close_alert_and_get_its_text(self): try: alert = self.driver.switch_to_alert() alert_text = alert.text if self.accept_next_alert: alert.accept() else: alert.dismiss() return alert_text finally: self.accept_next_alert = True def tearDown(self): self.driver.quit() self.assertEqual([], self.verificationErrors) if __name__ == "__main__": unittest.main()
haber, lo explico, quiero que el script sea capaz de acceder a todos os usuarios de la pagina y pinche en dos botones por usuario, pero no se como se pone eso en python, como añado un for y lo recorro? tendria que ser un bucle de 1 hasta 50000, he puesto un int pero no se como añadirlo a la direccion base, si lo hago con un string si me deja pero no se como incrementar el valor de dentro del string, alguien me echa una ayuda?. si lo quisiera hacer en java, para ejecutarlo luego como lo haria?
|
|
|
10
|
Programación / Programación C/C++ / paso de parametros a la funcion main y archvos pbm
|
en: 24 Noviembre 2013, 09:40 am
|
hola, tengo que hacer un programa que cree una imagen en formato pbm a traves de una secuencia de caracteres que se le pase mediante la funcion main, de forma: nombreprograma.exe secuenciadigital donde secuencia digital es una secuencia de unos y ceros de 32 caracteres como maximo, y dependiendo de si es un uno o un cero añadira a la imagen una o otra cosa de esta forma: http://subefotos.com/ver/?0af5e21ed0cbbeddb34934e327b6f513o.pnghasta ahi todo bien, defino dos matrices multidireccionales, una para el 0 y otra para el uno, para que cada vez que haya un uno o un cero se cree cada fragmento, el problema es que no se como almacenar la cadena que me pasan, por ejemplo si me pasan 01001 tendria que verificar si es 0 o 1 el primer elemento y imprimirlo en una nueva matriz, con el segundo elemnto igual con el tercero lo mismo y asi hasta el ultimo, pero no se como se hace con los valores que son pasados como parametros a main. alguen me echa una mano, gracias
|
|
|
|
|
|
|