elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


  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:

Código
  1. <%@ page language="java" import="java.util.*"%>
  2. <%@ page language="java" import="almacen.*"%>
  3. <%@ page language="java" import="java.io.*"%>
  4. <%@ page language="java" import="paa.provincias.*"%>
  5.  
  6.  
  7.  
  8. <html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es">
  9. <head>
  10.    <title>listaPoblaciones</title>
  11.    <link rel="stylesheet" type="text/css" href="estilos.css" />
  12.    <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1" />
  13.  
  14. </head>
  15. <body>
  16. <%@ page language="java"
  17. contentType="text/html; harset=ISO-8859-1"
  18. pageEncoding="ISO-8859-1"%>
  19. <div id="lista">
  20. <%
  21. AlmacenPoblaciones almacen = null;
  22. boolean balmacen;
  23. almacen = new AlmacenPoblaciones();
  24.    String path = getServletConfig().getServletContext().getRealPath("");
  25. balmacen = almacen.recuperar(path + "\\WEB-INF\\almacen.dat");
  26. int numProvincias = almacen.getProvincias().size();
  27. String direccion = "http://localhost:8080/practica3/listaPoblaciones.jsp?";
  28. if(!balmacen){
  29. System.out.println("No se ha cargado el almacen");
  30. }
  31. %>
  32.  
  33. <h1>Lista de provincias almacenadas</h1>
  34. <h2>Se han recuperado <%=numProvincias%> provincias</h2>
  35. <h3>Pulse sobre el nombre de la provincia para ver las poblaciones</h3>
  36. <%
  37. Set<String> listaProvincias = almacen.getProvincias();
  38. String provincia;
  39. System.out.println("listaProvincias");%>
  40. <ul>
  41. <%for(String a : listaProvincias){%>
  42. <li> Provincias: <a href=<%=direccion%>> <%=a%></a></li>
  43. <%}%>
  44. </ul>
  45. <%
  46. Enumeration<String> nombres = request.getParameterNames();
  47.    if(nombres.hasMoreElements()){
  48. provincia = nombres.nextElement();
  49.        SortedSet<IPoblacion> listaPoblaciones = almacen.getPoblaciones(provincia);
  50. Iterator<IPoblacion> itr = listaPoblaciones.iterator();
  51. Poblacion poblacion;
  52. if(itr.hasNext()){%>
  53. <table align=\center\>
  54. <tr><th>Provincia</th><th>Población</th><th>Habitantes</th><th>Código</th><th>Operación</th></tr>
  55. <%for(IPoblacion s : almacen.getPoblaciones(provincia)){
  56. poblacion = (Poblacion) s;%>
  57. <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>
  58. <%}%>
  59.  
  60. </table>
  61. <%}else{%>
  62. <h2>No hay poblaciones en: <%=provincia%></h2>
  63. <%}%>
  64. <%}%>
  65.  
  66. </div>
  67. </body>
  68. </html>
  69.  

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:

Código
  1. package principal;
  2.  
  3. import java.util.Iterator;
  4.  
  5. import javax.swing.table.AbstractTableModel;
  6.  
  7. import paa.provincias.IPrediccion;
  8.  
  9. public class TableModel extends AbstractTableModel{
  10.  
  11. /**
  12. *
  13. */
  14. private static final long serialVersionUID = 1L;
  15. String columnas[] = {"Fecha", "Temp. Mínima", "Temp. Máxima", "Icono","Estado del cielo"};
  16. Object[][] data;
  17. public java.util.List<IPrediccion> predicciones;
  18.  
  19. public TableModel() {
  20. data = new Object[8][5];
  21. int k = 0;
  22. for(int j = 0; j<5; j++){
  23. data[0][j] = columnas[k];
  24. k++;
  25. for(int i=1; i<8; i++){
  26. data[i][j] = new String("*");
  27. }
  28. }
  29. }
  30.  
  31. public int getColumnCount() {
  32. return columnas.length;
  33. }
  34.  
  35. @Override
  36. public int getRowCount() {
  37. return data.length;
  38. }
  39.  
  40. @Override
  41. public Object getValueAt(int row, int col) {
  42.  
  43. return data[row][col];
  44. }
  45.  
  46. public String getColumnName(int col){
  47. return columnas[col];
  48. }
  49.  
  50. public Class getColumnClass(int c){
  51. return getValueAt(0,c).getClass();
  52. }
  53.  
  54. //public boolean isCellEditable(int row,int col){}
  55. public void setValueAt(Object value, int row, int col){
  56. data[row][col] = value;
  57. fireTableCellUpdated(row,col);
  58. }
  59.  
  60. public void rellenar(java.util.List<IPrediccion> prediccion){
  61. Iterator<IPrediccion> it;
  62. it = prediccion.iterator();
  63.  
  64. int i = 1; // si pongo 1 salen imagenes, si pongo 0 salen string wtf?
  65. int j;
  66. while (it.hasNext()){
  67. //Recorremos la lista y colocamos en las celdas de cada fila los datos de las predicciones
  68. IPrediccion pre = it.next();
  69. j=0;
  70. setValueAt(pre.getFecha(), i, j);
  71. j++;
  72. setValueAt(pre.getTemperaturaMinima(), i, j);
  73. j++;
  74. setValueAt(pre.getTemperaturaMaxima(), i, j);
  75. j++;
  76. setValueAt(pre.getIconoEstadoCielo(), i, j);
  77. j++;
  78. setValueAt(pre.getEstadoCielo(), i, j);
  79. j++;
  80. i++;
  81. }
  82. }
  83.  
  84.  
  85. }
  86.  

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:
Código
  1. package principal;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4.  
  5. import javax.swing.Icon;
  6. import javax.swing.ImageIcon;
  7. import javax.swing.JButton;
  8. import javax.swing.JFrame;
  9. import javax.swing.JLabel;
  10. import javax.swing.JMenu;
  11. import javax.swing.JMenuBar;
  12. import javax.swing.JMenuItem;
  13. import javax.swing.JOptionPane;
  14. import javax.swing.JPanel;
  15. import javax.swing.JScrollPane;
  16. import javax.swing.JSplitPane;
  17. import javax.swing.JToolBar;
  18. import javax.swing.JTree;
  19. import javax.swing.SwingConstants;
  20. import javax.swing.WindowConstants;
  21. import javax.swing.tree.DefaultMutableTreeNode;
  22. import javax.swing.tree.DefaultTreeModel;
  23.  
  24. import Poblacion.VentanaBorrarPoblacion;
  25. import Poblacion.VentanaCrearPoblacion;
  26. import paa.provincias.GestorAEMET;
  27. import paa.provincias.GestorAEMETException;
  28. import paa.provincias.IPoblacion;
  29. import paa.provincias.IPoblacionAEMET;
  30. import paa.provincias.IPrediccion;
  31.  
  32.  
  33. /**
  34.  * Fichero: InterfazAWT_AEMET.java Clase que implementa la Interfaz Gráfica
  35.  * AEMET con awt.
  36.  *
  37.  * @author PAA
  38.  * @version 1.0
  39.  */
  40. public class InterfazAWT_AEMET extends JFrame {
  41. /**
  42. *
  43. */
  44. private static final long serialVersionUID = 502635761186556414L;
  45.  
  46. private static final String FICHERO = "almacen.dat";
  47. private AlmacenPoblaciones almacen;
  48.  
  49. // private IAlmacenPoblaciones almacenPoblaciones;
  50. private List listaPoblaciones = new List();
  51. private List listaPredicciones = new List();
  52. private List listaProvincias = new List();
  53. private InterfazAWT_AEMET gui;
  54. private GestorAEMET gestor = new GestorAEMET();
  55. private Aviso aviso;
  56. /**
  57. * Constructor.
  58. *
  59. * @throws GestorAEMETException
  60. */
  61. public InterfazAWT_AEMET(String titulo, int ancho, int alto) {
  62. super(titulo);
  63. setSize(ancho, alto);
  64. setLocationRelativeTo(null);
  65. setLayout(new BorderLayout()); // Layout de la aplicación, podría ser otro
  66. almacen = RecuperarAlmacenPoblaciones();
  67. initComponents();
  68. JFrame.setDefaultLookAndFeelDecorated(true);
  69. }
  70.  
  71. public AlmacenPoblaciones RecuperarAlmacenPoblaciones() {
  72. // Recuperamos el almacén
  73. AlmacenPoblaciones almacenPoblaciones1 = new AlmacenPoblaciones();
  74.  
  75. if (almacenPoblaciones1.recuperar(FICHERO)){
  76. Icon icono= new ImageIcon(getClass().getResource("/iconos/check.png"));
  77. JOptionPane.showMessageDialog(null, "Recuperado el almacen del fichero " + FICHERO, "Recuperado",JOptionPane.INFORMATION_MESSAGE,icono);
  78. }else{
  79. JOptionPane.showMessageDialog(null, "No se ha podido recuperar el almacen del fichero" + FICHERO, "Error",JOptionPane.ERROR_MESSAGE);
  80.  
  81. }return almacenPoblaciones1;
  82.  
  83. }
  84.  
  85. private void initComponents() {
  86.  
  87. // Boton salir por defecto
  88. this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  89.  
  90. setJMenuBar(addJMenuBar());
  91. this.add(addJToolBar(), BorderLayout.NORTH);
  92. this.add(addlineaEstado(), BorderLayout.SOUTH);
  93. this.add(addPanelIzquierda(), BorderLayout.WEST);
  94.  //Create a split pane with the two scroll panes in it.
  95.    JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,addPanelIzquierda(),addpredicciones());
  96.    splitPane.setDividerLocation(150);
  97.    splitPane.setDividerSize(10);
  98.    splitPane.setOneTouchExpandable(true);
  99.  
  100. /*
  101.    // Provide minimum sizes for the two components in the split pane
  102.    Dimension minimumSize = new Dimension(100, 50);
  103.    addPanelIzquierda().setMinimumSize(minimumSize);
  104.    addpredicciones().setMinimumSize(minimumSize);
  105.  
  106.    // Set the initial location and size of the divider
  107.  
  108.  
  109.    // Provide a preferred size for the split pane
  110.    splitPane.setPreferredSize(new Dimension(400, 200));*/
  111. this.add(addpredicciones(), BorderLayout.CENTER);
  112. }
  113.  
  114. private JMenuBar addJMenuBar() {
  115. // Sitúo los menús desplegables
  116. JMenuBar barraDeMenu = new JMenuBar();
  117.  
  118. // Creo el menú Archivo
  119. JMenu menuArchivo = new JMenu("Archivo");
  120. JMenuItem crearGuardar = new JMenuItem("Guardar");
  121. JMenuItem crearCargar = new JMenuItem("Cargar");
  122. JMenuItem salir = new JMenuItem("Salir");
  123. crearCargar.addActionListener(new Controller());
  124. crearGuardar.addActionListener(new Controller());
  125. salir.addActionListener(new Controller());
  126. menuArchivo.add(crearCargar);
  127. menuArchivo.add(crearGuardar);
  128. menuArchivo.add(salir);
  129.  
  130. // Creo el menú Provincias
  131. JMenu menuProvincias = new JMenu("Provincias");
  132. JMenuItem crearProvincias = new JMenuItem("Crear provincia");
  133. JMenuItem borrarProvincias = new JMenuItem("Borrar provincia");
  134. crearProvincias.addActionListener(new Controller());
  135. borrarProvincias.addActionListener(new Controller());
  136. menuProvincias.add(crearProvincias);
  137. menuProvincias.add(borrarProvincias);
  138.  
  139. // Creo el menu Poblaciones
  140. JMenu menuPoblaciones = new JMenu("Poblaciones");
  141. JMenuItem crearPoblacion = new JMenuItem("Crear poblacion");
  142. JMenuItem borrarPoblacion = new JMenuItem("Borrar poblacion");
  143. JMenuItem ordenarNombre = new JMenuItem("Ordenar por nombre");
  144. JMenuItem ordenarHabitantes = new JMenuItem("Ordenar por habitantes");
  145. JMenuItem modPoblacion = new JMenuItem("Modificar poblacion");
  146. JMenuItem movPoblacion = new JMenuItem("Mover poblacion");
  147. crearPoblacion.addActionListener(new Controller());
  148. borrarPoblacion.addActionListener(new Controller());
  149. ordenarNombre.addActionListener(new Controller());
  150. ordenarHabitantes.addActionListener(new Controller());
  151. modPoblacion.addActionListener(new Controller());
  152. movPoblacion.addActionListener(new Controller());
  153. menuPoblaciones.add(crearPoblacion);
  154. menuPoblaciones.add(borrarPoblacion);
  155. menuPoblaciones.add(ordenarNombre);
  156. menuPoblaciones.add(ordenarHabitantes);
  157. menuPoblaciones.add(modPoblacion);
  158. menuPoblaciones.add(movPoblacion);
  159.  
  160. // Creo el menú de ayuda
  161. JMenu ayuda = new JMenu("Ayuda");
  162. JMenuItem acercaDe = new JMenuItem("Acerca de");
  163. acercaDe.addActionListener(new AcercaDe());
  164. ayuda.add(acercaDe);
  165.  
  166. // Crea el
  167. barraDeMenu.add(menuArchivo);
  168. barraDeMenu.add(menuProvincias);
  169. barraDeMenu.add(menuPoblaciones);
  170. barraDeMenu.add(ayuda);
  171. return barraDeMenu;
  172. }
  173.  
  174. private JToolBar addJToolBar() {
  175. // Sitúo la línea de botones
  176. JToolBar lineaDeBotones = new JToolBar();
  177. lineaDeBotones.setBackground(new Color(200,100,100));
  178.  
  179. // Boton crear provincia
  180. Icon Iprovincia= new ImageIcon(getClass().getResource("/iconos/provincia.png"));
  181. JButton proCrear = new JButton("Crear provincia",Iprovincia);
  182. proCrear.addActionListener(new Controller());
  183.  
  184. // Boton crear poblacion
  185. Icon Ipoblacion= new ImageIcon(getClass().getResource("/iconos/poblacion.png"));
  186. JButton poCrear = new JButton("Crear poblacion",Ipoblacion);
  187. poCrear.addActionListener(new Controller());
  188.  
  189. // Boton actualizar prediccion
  190. Icon actualizar= new ImageIcon(getClass().getResource("/iconos/actualizar.png"));
  191.  
  192. JButton aPrediccion = new JButton("Actualizar Predicción",actualizar);
  193. aPrediccion.setToolTipText("Click para actualizar las predicciones");
  194. aPrediccion.addActionListener(new Controller());
  195.  
  196. // Añadir los botones a la barra
  197. lineaDeBotones.add(proCrear);
  198. lineaDeBotones.add(poCrear);
  199. lineaDeBotones.add(aPrediccion);
  200. return lineaDeBotones;
  201. }
  202.  
  203. private JTree addPanelIzquierda() {
  204. // Construccion del arbol
  205.        DefaultMutableTreeNode provinciasPrincipal = new DefaultMutableTreeNode("Provincias");
  206.        DefaultTreeModel modelo = new DefaultTreeModel(provinciasPrincipal);
  207.        JTree tree = new JTree(modelo);
  208.  
  209.        // Construccion de los datos del arbol
  210.  
  211.        for(String s : almacen.getProvincias()){
  212.         int j = 0;
  213.         DefaultMutableTreeNode provincia = new DefaultMutableTreeNode(s);
  214.         modelo.insertNodeInto(provincia, provinciasPrincipal, j);
  215.         j++;
  216.         for(IPoblacion i : almacen.getPoblaciones(s)){
  217.         int x = 0;
  218.         DefaultMutableTreeNode poblacion = new DefaultMutableTreeNode(i.getNombre());
  219.         modelo.insertNodeInto(poblacion, provincia, x);
  220.         x++;
  221.         }
  222.        }
  223. return tree;
  224. }
  225.  
  226. private JPanel addpredicciones() {
  227. // Creamos el panel de las predicciones
  228. JPanel predicciones = new JPanel(new BorderLayout());
  229. JLabel lPrediccion = new JLabel("Predicciones de :");
  230. predicciones.add(lPrediccion, BorderLayout.NORTH);
  231. predicciones.add(listaPredicciones, BorderLayout.CENTER);
  232. return predicciones;
  233. }
  234.  
  235. private JPanel addlineaEstado() {
  236. // Sitúo la línea de estado
  237. JPanel lineaDeEstado = new JPanel();
  238. lineaDeEstado.setLayout(new FlowLayout(FlowLayout.LEFT));
  239. lineaDeEstado.setBackground(new Color(0,80,80));
  240. JLabel ventanaDeeventos = new JLabel("Gestor AEMET v2.0 (PAA)",SwingConstants.CENTER);
  241. ventanaDeeventos.setForeground(new Color(200,200,60));
  242. ventanaDeeventos.setHorizontalAlignment(SwingConstants.CENTER);
  243. ventanaDeeventos.setVerticalAlignment(SwingConstants.CENTER);
  244. lineaDeEstado.add(ventanaDeeventos);
  245. return lineaDeEstado;
  246. }
  247.  
  248. private void guardarAntesDeSalir() {
  249.  
  250. // Guardar almacen
  251. almacen.guardar(FICHERO);
  252. System.out.println("Gracias por utilizar nuestro programa");
  253. }
  254.  
  255. class Controller implements ActionListener {
  256.  
  257. public void actionPerformed(ActionEvent e) {
  258. String nombre = e.getActionCommand();
  259. EvaluarAccion(nombre);
  260.  
  261. }
  262.  
  263. public void EvaluarAccion(String accion) {
  264.  
  265. switch (accion) {
  266. case "Guardar":
  267. almacen.guardar(FICHERO);
  268. JOptionPane.showMessageDialog(null, "El almacen ha sido guardado", "Guardado", DISPOSE_ON_CLOSE);
  269. break;
  270. case "Cargar":
  271. almacen = RecuperarAlmacenPoblaciones();
  272. break;
  273. case "Salir":
  274. System.exit(0);
  275. break;
  276. case "Crear provincia":
  277. String crearProvincia = JOptionPane.showInputDialog(null,"Provincia:","Nueva provincia",JOptionPane.QUESTION_MESSAGE);
  278. if((crearProvincia != null)&&(!crearProvincia.equals(""))){
  279. almacen.addProvincia(crearProvincia);
  280. }else{
  281. JOptionPane.showMessageDialog(null, "Error al crear provincia", "Error", DISPOSE_ON_CLOSE);
  282. }
  283.  
  284. break;
  285. case "Borrar provincia":
  286. String borrarProvincia = JOptionPane.showInputDialog(null,"Provincia:","Eliminar provincia",JOptionPane.QUESTION_MESSAGE);
  287. if((borrarProvincia != null)&&(!borrarProvincia.equals(""))){
  288. almacen.delProvincia(borrarProvincia);
  289. }else{
  290. JOptionPane.showMessageDialog(null, "Error al borrar provincia", "Error", DISPOSE_ON_CLOSE);
  291. }
  292. break;
  293. case "Crear poblacion":
  294. break;
  295. case "Borrar poblacion":
  296. new VentanaBorrarPoblacion(gui,almacen,listaPoblaciones,listaProvincias,listaPredicciones).setVisible(true);
  297. break;
  298. case "Ordenar por nombre":
  299. /*almacen.ordenarPor(listaProvincias.getSelectedItem(), almacen.ORDENARPORNOMBRE);
  300. listaProvincias.removeAll();
  301. Iterator<IPoblacion> i = almacen.getPoblaciones(listaProvincias.getSelectedItem()).iterator();
  302. while(i.hasNext()){
  303. i.next();
  304. listaProvincias.add(i.next().getNombre());
  305. }*/
  306. break;
  307. case "Ordenar por habitantes":
  308. /*almacen.ordenarPor(listaProvincias.getSelectedItem(), almacen.ORDENARPORHABITANTES);
  309. listaProvincias.removeAll();
  310. for(IPoblacion p : almacen.getPoblaciones(listaProvincias.getSelectedItem())){
  311. listaProvincias.add(p.getNombre());
  312. }*/
  313. break;
  314. case "Modificar poblacion":
  315. break;
  316. case "Mover poblacion":
  317. break;
  318. case "Actualizar Predicción":
  319.  
  320. IPoblacion poblacion = almacen.getPoblacion(listaProvincias.getSelectedItem(), listaPoblaciones.getSelectedItem());
  321. try {
  322. listaPredicciones.removeAll();
  323. for(IPrediccion p : gestor.getPredicciones((IPoblacionAEMET) poblacion)){
  324. listaPredicciones.add(p.getFecha() + " : " + p.getEstadoCielo() + " : " +
  325. p.getTemperaturaMaxima() + " : " + p.getTemperaturaMinima());
  326. }
  327. } catch (GestorAEMETException e) {
  328. new Aviso(gui,e.getMessage());
  329. }
  330. break;
  331. case "Acerca de" :
  332. new VentanaAcercaDe(gui);
  333. break;
  334. }
  335. }
  336. }
  337.  
  338. /**
  339. * Clase que implementa la acción del menú "acerca de".
  340. */
  341. class AcercaDe implements ActionListener { // Clase interna
  342. public void actionPerformed(ActionEvent e) {
  343. VentanaAcercaDe ventanaAcercaDe = new VentanaAcercaDe(
  344. InterfazAWT_AEMET.this);
  345. ventanaAcercaDe.setVisible(true);
  346. }
  347. }// Acerca de
  348.  
  349. /**
  350. * Método main.
  351. * @throws GestorAEMETException
  352. */
  353. public static void main(String[] args) throws GestorAEMETException {
  354.  
  355. InterfazAWT_AEMET mimarco = new InterfazAWT_AEMET("Gestor AEMET", 1000,
  356. 500);
  357. mimarco.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
  358. mimarco.setVisible(true);
  359. } // Main
  360. }
  361.  

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:
Código
  1. String borrarProvincia = JOptionPane.showInputDialog(null,"Provincia:","Eliminar provincia",JOptionPane.QUESTION_MESSAGE);
  2. if((borrarProvincia != null)&&(!borrarProvincia.equals(""))){
  3. almacen.delProvincia(borrarProvincia);
  4. }else{
  5. JOptionPane.showMessageDialog(null, "Error al borrar provincia", "Error", DISPOSE_ON_CLOSE);
  6. }

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 principal
Código
  1. package principal;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. import Poblacion.VentanaBorrarPoblacion;
  5. import Poblacion.VentanaCrearPoblacion;
  6. import Provincia.VentanaBorrarProvincia;
  7. import Provincia.VentanaCrearProvincia;
  8. import paa.provincias.GestorAEMET;
  9. import paa.provincias.GestorAEMETException;
  10. import paa.provincias.IPoblacion;
  11.  
  12. /**
  13.  * Fichero: InterfazAWT_AEMET.java Clase que implementa la Interfaz Gráfica
  14.  * AEMET con awt.
  15.  *
  16.  * @author PAA
  17.  * @version 1.0
  18.  */
  19. public class InterfazAWT_AEMET extends Frame {
  20. /**
  21. *
  22. */
  23. private static final long serialVersionUID = 502635761186556414L;
  24.  
  25. private static final String FICHERO = "almacen.dat";
  26. private AlmacenPoblaciones almacen;
  27.  
  28. // private IAlmacenPoblaciones almacenPoblaciones;
  29. private List listaPoblaciones = new List();
  30. private List listaPredicciones = new List();
  31. private List listaProvincias = new List();
  32. private InterfazAWT_AEMET gui;
  33. /**
  34. * Constructor.
  35. *
  36. * @throws GestorAEMETException
  37. */
  38. public InterfazAWT_AEMET(String titulo, int ancho, int alto) {
  39. super(titulo);
  40.  
  41. setSize(ancho, alto);
  42. setLocationRelativeTo(null);
  43. setLayout(new BorderLayout()); // Layout de la aplicación, podría ser otro
  44. almacen = RecuperarAlmacenPoblaciones();
  45. System.out.println(almacen.getProvincias());
  46. initComponents();
  47. for(String provincia : almacen.getProvincias()){
  48. listaProvincias.add(provincia);
  49. /*if(listaProvincias.getSelectedItem()==null){
  50. listaPoblaciones.add(almacen.getPoblaciones(listaProvincias.getSelectedItem()));
  51. }
  52. for(IPoblacion s : almacen.getPoblaciones(listaProvincias.getSelectedItem())){
  53.  
  54. }*/
  55. }
  56. //Imprimimos provincias y poblaciones en las listas
  57. }
  58.  
  59. public AlmacenPoblaciones RecuperarAlmacenPoblaciones() {
  60. // Recuperamos el almacén
  61. AlmacenPoblaciones almacenPoblaciones1 = new AlmacenPoblaciones();
  62.  
  63. if (almacenPoblaciones1.recuperar(FICHERO))
  64. System.out.println("Recuperado el almacen del fichero " + FICHERO);
  65. else
  66. System.out.println("No se pudo recuperar el almacen del fichero "+ FICHERO);
  67. return almacenPoblaciones1;
  68.  
  69. }
  70.  
  71. private void initComponents() {
  72.  
  73. // Boton salir por defecto
  74. addWindowListener(new WindowAdapter() {
  75. public void windowClosing(WindowEvent e) {
  76. guardarAntesDeSalir();
  77. System.exit(0);
  78. }
  79. });
  80.  
  81. setMenuBar(addMenuBar());
  82. this.add(addToolBar(), BorderLayout.NORTH);
  83. this.add(addlineaEstado(), BorderLayout.SOUTH);
  84. this.add(addPanelIzquierda(), BorderLayout.WEST);
  85. this.add(addpredicciones(), BorderLayout.CENTER);
  86. }
  87.  
  88. private MenuBar addMenuBar() {
  89. // Sitúo los menús desplegables
  90. MenuBar barraDeMenu = new MenuBar();
  91.  
  92. // Creo el menú Archivo
  93. Menu menuArchivo = new Menu("Archivo");
  94. MenuItem crearGuardar = new MenuItem("Guardar");
  95. MenuItem crearCargar = new MenuItem("Cargar");
  96. MenuItem salir = new MenuItem("Salir");
  97. crearCargar.addActionListener(new Controller());
  98. crearGuardar.addActionListener(new Controller());
  99. salir.addActionListener(new Controller());
  100. menuArchivo.add(crearCargar);
  101. menuArchivo.add(crearGuardar);
  102. menuArchivo.add(salir);
  103.  
  104. // Creo el menú Provincias
  105. Menu menuProvincias = new Menu("Provincias");
  106. MenuItem crearProvincias = new MenuItem("Crear provincia");
  107. MenuItem borrarProvincias = new MenuItem("Borrar provincia");
  108. crearProvincias.addActionListener(new Controller());
  109. borrarProvincias.addActionListener(new Controller());
  110. menuProvincias.add(crearProvincias);
  111. menuProvincias.add(borrarProvincias);
  112.  
  113. // Creo el menu Poblaciones
  114. Menu menuPoblaciones = new Menu("Poblaciones");
  115. MenuItem crearPoblacion = new MenuItem("Crear poblacion");
  116. MenuItem borrarPoblacion = new MenuItem("Borrar poblacion");
  117. MenuItem ordenarNombre = new MenuItem("Ordenar por nombre");
  118. MenuItem ordenarHabitantes = new MenuItem("Ordenar por habitantes");
  119. MenuItem modPoblacion = new MenuItem("Modificar poblacion");
  120. MenuItem movPoblacion = new MenuItem("Mover poblacion");
  121. crearPoblacion.addActionListener(new Controller());
  122. borrarPoblacion.addActionListener(new Controller());
  123. ordenarNombre.addActionListener(new Controller());
  124. ordenarHabitantes.addActionListener(new Controller());
  125. modPoblacion.addActionListener(new Controller());
  126. movPoblacion.addActionListener(new Controller());
  127. menuPoblaciones.add(crearPoblacion);
  128. menuPoblaciones.add(borrarPoblacion);
  129. menuPoblaciones.add(ordenarNombre);
  130. menuPoblaciones.add(ordenarHabitantes);
  131. menuPoblaciones.add(modPoblacion);
  132. menuPoblaciones.add(movPoblacion);
  133.  
  134. // Creo el menú de ayuda
  135. Menu ayuda = new Menu("Ayuda");
  136. MenuItem acercaDe = new MenuItem("Acerca de");
  137. acercaDe.addActionListener(new AcercaDe());
  138. ayuda.add(acercaDe);
  139.  
  140. // Crea el
  141. barraDeMenu.add(menuArchivo);
  142. barraDeMenu.add(menuProvincias);
  143. barraDeMenu.add(menuPoblaciones);
  144. // Sitúo el menú de ayuda en su sitio
  145. barraDeMenu.setHelpMenu(ayuda);
  146. return barraDeMenu;
  147. }
  148.  
  149. private Panel addToolBar() {
  150. // Sitúo la línea de botones
  151. Panel lineaDeBotones = new Panel(new FlowLayout(FlowLayout.LEFT));
  152. lineaDeBotones.setBackground(Color.lightGray);
  153.  
  154. // Boton crear provincia
  155. Button proCrear = new Button("Crear provincia");
  156. proCrear.addActionListener(new Controller());
  157.  
  158. // Boton crear poblacion
  159. Button poCrear = new Button("Crear poblacion");
  160. poCrear.addActionListener(new Controller());
  161.  
  162. // Boton actualizar prediccion
  163. Button aPrediccion = new Button("Actualizar Predicción");
  164. aPrediccion.addActionListener(new Controller());
  165.  
  166. // Añadir los botones a la barra
  167. lineaDeBotones.add(proCrear);
  168. lineaDeBotones.add(poCrear);
  169. lineaDeBotones.add(aPrediccion);
  170. return lineaDeBotones;
  171. }
  172.  
  173. private Panel addPanelIzquierda() {
  174. // Creamos panel para mostrar provincias y poblaciones y lo colocamos a
  175. // la izquierda
  176. Panel izquierda = new Panel(new GridLayout(4, 1));
  177. Label lProvincia = new Label("Provincias:");
  178. Label lPoblacion = new Label("Poblaciones:");
  179. izquierda.add(lProvincia);
  180. izquierda.add(listaProvincias);
  181. izquierda.add(lPoblacion);
  182. izquierda.add(listaPoblaciones);
  183. return izquierda;
  184. }
  185.  
  186. private Panel addpredicciones() {
  187. // Creamos el panel de las predicciones
  188. Panel predicciones = new Panel(new BorderLayout());
  189. Label lPrediccion = new Label("Predicciones de :");
  190. List tPrediccion = new List();
  191. predicciones.add(lPrediccion, BorderLayout.NORTH);
  192. predicciones.add(tPrediccion, BorderLayout.CENTER);
  193. return predicciones;
  194. }
  195.  
  196. private Panel addlineaEstado() {
  197. // Sitúo la línea de estado
  198. Panel lineaDeEstado = new Panel();
  199. lineaDeEstado.setLayout(new FlowLayout(FlowLayout.LEFT));
  200. lineaDeEstado.setBackground(Color.lightGray);
  201. Label ventanaDeeventos = new Label("Gestor AEMET v1.0 (PAA)");
  202. lineaDeEstado.add(ventanaDeeventos);
  203. return lineaDeEstado;
  204. }
  205.  
  206. private void guardarAntesDeSalir() {
  207.  
  208. // Guardar almacen
  209. almacen.guardar(FICHERO);
  210. System.out.println("Gracias por utilizar nuestro programa");
  211. }
  212.  
  213. class Controller implements ActionListener {
  214.  
  215. public void actionPerformed(ActionEvent e) {
  216. String nombre = e.getActionCommand();
  217. EvaluarAccion(nombre);
  218. }
  219.  
  220. public void EvaluarAccion(String accion) {
  221.  
  222. switch (accion) {
  223. case "Guardar":
  224. almacen.guardar(FICHERO);
  225. Aviso guardar = new Aviso(gui, "Archivo guardado");
  226. break;
  227. case "Salir":
  228. System.exit(0);
  229. break;
  230. case "Crear provincia":
  231. new VentanaCrearProvincia(gui,almacen,listaPoblaciones,listaProvincias,listaPredicciones).setVisible(true);
  232. break;
  233. case "Borrar provincia":
  234. new VentanaBorrarProvincia(gui,almacen,listaPoblaciones,listaProvincias,listaPredicciones).setVisible(true);
  235. break;
  236. case "Crear poblacion":
  237. new VentanaCrearPoblacion(gui,almacen,listaPoblaciones,listaProvincias,listaPredicciones).setVisible(true);
  238. break;
  239. case "Borrar poblacion":
  240. new VentanaBorrarPoblacion(gui,almacen,listaPoblaciones,listaProvincias,listaPredicciones).setVisible(true);
  241. break;
  242. case "Ordenar por nombre":
  243. break;
  244. case "Ordenar por habitantes":
  245. break;
  246. case "Modificar poblacion":
  247. break;
  248. case "Mover poblacion":
  249. break;
  250. }
  251. }
  252. }
  253.  
  254. /**
  255. * Clase que implementa la acción del menú "acerca de".
  256. */
  257. class AcercaDe implements ActionListener { // Clase interna
  258. public void actionPerformed(ActionEvent e) {
  259. VentanaAcercaDe ventanaAcercaDe = new VentanaAcercaDe(
  260. InterfazAWT_AEMET.this);
  261. ventanaAcercaDe.setVisible(true);
  262. }
  263. }// Acerca de
  264.  
  265. /**
  266. * Método main.
  267. * @throws GestorAEMETException
  268. */
  269. public static void main(String[] args) throws GestorAEMETException {
  270.  
  271. InterfazAWT_AEMET mimarco = new InterfazAWT_AEMET("Gestor AEMET", 1000,
  272. 500);
  273. mimarco.setVisible(true);
  274. } // Main
  275. }
  276.  

La que crea provincia:
Código
  1. package Provincia;
  2. import java.awt.Button;
  3. import java.awt.Dialog;
  4. import java.awt.Frame;
  5. import java.awt.GridLayout;
  6. import java.awt.Label;
  7. import java.awt.List;
  8. import java.awt.Panel;
  9. import java.awt.TextField;
  10. import java.awt.event.ActionEvent;
  11. import java.awt.event.ActionListener;
  12. import java.awt.event.WindowAdapter;
  13. import java.awt.event.WindowEvent;
  14.  
  15. import principal.AlmacenPoblaciones;
  16. import principal.Aviso;
  17.  
  18.  
  19. public class VentanaCrearProvincia extends Dialog {
  20.  
  21. private Button crear;
  22. private Button cancelar;
  23. private AlmacenPoblaciones almacen;
  24. private List listaPoblaciones;
  25. private List listaPredicciones;
  26. private List listaProvincias;
  27. private TextField textField;
  28. private static final long serialVersionUID = -2530069431684593677L;
  29.  
  30. public VentanaCrearProvincia(Frame gui, AlmacenPoblaciones almacen, List listaPoblaciones, List listaProvincias, List listaPredicciones) {
  31. super(gui);
  32.  
  33. this.almacen = almacen;
  34. this.listaPoblaciones = listaPoblaciones;
  35. this.listaProvincias = listaProvincias;
  36. this.listaPredicciones = listaPredicciones;
  37. initComponents(gui);
  38. }
  39.  
  40. public void initComponents (Frame gui){
  41. Panel panel = new Panel(new GridLayout(2,2,0,0));
  42. Label label = new Label("Provincia:");
  43. textField = new TextField();
  44. crear = new Button("Crear");
  45. cancelar = new Button("Cancelar");
  46. setLocationRelativeTo(gui);
  47. this.setTitle("Crear Provincia");
  48. this.setSize(300, 100);
  49. panel.add(label);
  50. panel.add(textField);
  51. panel.add(crear);
  52. panel.add(cancelar);
  53. crear.addActionListener(new Controller());
  54. cancelar.addActionListener(new Controller());
  55. this.add(panel);
  56. addWindowListener (new WindowAdapter (){
  57.          public void windowClosing(WindowEvent e) {
  58.          VentanaCrearProvincia.this.dispose();
  59.             }
  60.          });
  61. }
  62. public class Controller implements ActionListener {
  63. public void actionPerformed(ActionEvent e) {
  64. String label = e.getActionCommand();
  65. if(label.equals("Crear")){
  66. try{
  67. almacen.addProvincia(textField.getText());
  68. listaProvincias.removeAll();
  69. for(String provincia : almacen.getProvincias()){
  70. listaProvincias.add(provincia);
  71. }
  72. System.out.println(almacen.getProvincias());
  73. VentanaCrearProvincia.this.dispose();
  74.  
  75. Aviso aviso = new Aviso(VentanaCrearProvincia.this,e1.getMessage());
  76. }
  77. }else{
  78.  
  79. VentanaCrearProvincia.this.dispose();
  80. }
  81. }
  82.  
  83. }
  84. }
  85.  
y la que crea poblacion

Código
  1. package Poblacion;
  2. import java.awt.BorderLayout;
  3. import java.awt.Button;
  4. import java.awt.Dialog;
  5. import java.awt.FlowLayout;
  6. import java.awt.Frame;
  7. import java.awt.GridLayout;
  8. import java.awt.Label;
  9. import java.awt.List;
  10. import java.awt.Panel;
  11. import java.awt.TextField;
  12. import java.awt.event.ActionEvent;
  13. import java.awt.event.ActionListener;
  14. import java.awt.event.ItemEvent;
  15. import java.awt.event.WindowAdapter;
  16. import java.awt.event.WindowEvent;
  17.  
  18. import paa.provincias.IPoblacion;
  19. import principal.AlmacenPoblaciones;
  20. import principal.Aviso;
  21. import principal.Poblacion;
  22.  
  23. public class VentanaCrearPoblacion extends Dialog {
  24.  
  25. private Button crear;
  26. private Button cancelar;
  27. private AlmacenPoblaciones almacen;
  28. private List listaPoblaciones;
  29. private List listaPredicciones;
  30. private List listaProvincias;
  31. private TextField nombre;
  32. private TextField habitantes;
  33. private TextField codigo;
  34. private static final long serialVersionUID = 1434307119439314094L;
  35.  
  36. public VentanaCrearPoblacion(Frame gui, AlmacenPoblaciones almacen, List listaPoblaciones, List listaProvincias, List listaPredicciones) {
  37. super(gui);
  38. this.almacen = almacen;
  39. this.listaPoblaciones = listaPoblaciones;
  40. this.listaProvincias = listaProvincias;
  41. this.listaPredicciones = listaPredicciones;
  42. if(listaProvincias.getSelectedItem() != null){
  43. initComponents(gui);
  44. }else{
  45. Aviso aviso = new Aviso(gui,"Selecciona una provincia");
  46. gui.dispose();
  47. }
  48.  
  49. }
  50. public void initComponents(Frame gui){
  51. setLocationRelativeTo(gui);
  52. this.setLayout(new BorderLayout());
  53. this.setTitle("Crear Poblacion");
  54. this.setSize(300, 200);
  55. Panel texto = new Panel(new GridLayout(4,1,0,0));
  56. Panel panel = new Panel(new FlowLayout());
  57. crear = new Button("Crear");
  58. cancelar = new Button("Cancelar");
  59. nombre = new TextField("Nombre");
  60. Label nombreP = new Label(listaProvincias.getSelectedItem());
  61. habitantes = new TextField("Habitantes");
  62. codigo = new TextField("CodigoAEMET");
  63. crear.addActionListener(new Controller());
  64. cancelar.addActionListener(new Controller());
  65.  
  66. texto.add(nombre);
  67. texto.add(nombreP);
  68. texto.add(habitantes);
  69. texto.add(codigo);
  70. panel.add(crear);
  71. panel.add(cancelar);
  72.  
  73. this.add(texto, BorderLayout.CENTER);
  74. this.add(panel,BorderLayout.SOUTH);
  75.  
  76. addWindowListener (new WindowAdapter (){
  77.          public void windowClosing(WindowEvent e) {
  78.          VentanaCrearPoblacion.this.dispose();
  79.             }
  80.          });
  81. }
  82. class Controller implements ActionListener {
  83. private VentanaCrearPoblacion gui;
  84. public void actionPerformed(ActionEvent e) {
  85. String label = e.getActionCommand();
  86. if(label.equals("Crear")){
  87. try{
  88. IPoblacion poblacion = new Poblacion(nombre.getText(), Integer.parseInt(habitantes.getText()), listaProvincias.getSelectedItem(), codigo.getText());
  89. almacen.addPoblacion(listaProvincias.getSelectedItem(),poblacion);
  90.  
  91. //listaPoblaciones2.removeAll();
  92. for(IPoblacion p : almacen.getPoblaciones(listaProvincias.getSelectedItem())){
  93. listaPoblaciones.add(poblacion.getNombre());
  94. }
  95.  
  96. VentanaCrearPoblacion.this.dispose();
  97.  
  98.  
  99.  
  100. Aviso aviso = new Aviso(gui,e1.getMessage());
  101. }
  102. }else{
  103. VentanaCrearPoblacion.this.dispose();
  104. }
  105. }
  106. }
  107.  
  108. }
  109.  

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:

Código
  1. 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:

Código
  1. public boolean ordenarPor(String provincia, int ordenarPor) {
  2. if(provincia != null || ordenarPor != ORDENARPORNOMBRE || ordenarPor != ORDENARPORHABITANTES ){
  3. if(ordenarPor == ORDENARPORNOMBRE){
  4. Set<IPoblacion> spoblacion = Aprovincias.get(provincia);
  5. System.out.println(spoblacion);
  6. }else if(ordenarPor == ORDENARPORHABITANTES){
  7.  
  8.  
  9. }
  10.  
  11.  
  12.  
  13. return true;
  14. }
  15. return false;
  16. }

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:
Código
  1.  
  2. Map<String, Set<Poblacion>> Aprovincias = new HashMap<String, Set<Poblacion>>();
  3.  
  4. public boolean addPoblacion(String provincia, IPoblacion poblacion) {
  5. boolean res = false;
  6. if(!!Aprovincias.containsValue(provincia)){
  7. res = false;
  8. System.out.println("La Provincia no existe, creela antes de añadir poblacion");
  9. }else{
  10.  
  11. //Aprovincias.put(provincia, );
  12.                        Aqui es donde tengo el problema, ya que no se que hacer
  13. }
  14. return res;
  15. }

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:
Código
  1. public class Vector {
  2.  
  3.    private final int N;         // length of the vector
  4.    private double[] data;       // array of vector's components
  5.  
  6.    /**
  7.      * create the zero vector of length N
  8.      * @param N Vector length.
  9.      */
  10.    public Vector(int N) {
  11.        this.N = N;
  12.        this.data = new double[N];
  13.    }
  14.  
  15.    /**
  16.      * create a vector from either an array or a vararg list
  17.      * this constructor uses Java's vararg syntax to support
  18.      * a constructor that takes a variable number of arguments, such as
  19.      * Vector x = new Vector(1.0, 2.0, 3.0, 4.0);
  20.      * Vector y = new Vector(5.0, 2.0, 4.0, 1.0);
  21.      * @param data Initial value of the vector.
  22.      */
  23.    public Vector(double... data) {
  24.        N = data.length;
  25.  
  26.        // defensive copy so that client can't alter our copy of data[]
  27.        this.data = new double[N];
  28.        for (int i = 0; i < N; i++)
  29.            this.data[i] = data[i];
  30.    }
  31. //*metodos*/
  32.  

muro:
Código
  1. public class Muro {
  2.  
  3.  
  4. public static final double NO_IMPACTO = 999.0;
  5. protected Vector posicion;
  6. private Vector dimensiones;
  7.  
  8. /**
  9. * Crea un muro.
  10. *
  11. * @param Vector - con las coordenadas del centro del muro.
  12. * @param Vector - con las dimensiones del muro (semianchura, semialtura).
  13. */
  14. public Muro(Vector posicion,Vector dimensiones){
  15. this.posicion = posicion;
  16. this.dimensiones = dimensiones;

main:

Código
  1. import java.awt.*;
  2. public class Main {
  3.  
  4. public static void main(String[] args) {
  5.  
  6.  
  7. Muro muro[5];
  8. int i;
  9. muro[0]= new Muro(0, .5, .005, .5);
  10. muro[1]= new Muro(.5, 1, .505, .005);
  11. muro[2]= new Muro(1, .5, .005, .5);
  12. muro[3]= new Muro(.5, .65, .005, .2);
  13. 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:

Código
  1. from selenium import webdriver
  2. from selenium.webdriver.common.by import By
  3. from selenium.webdriver.common.keys import Keys
  4. from selenium.webdriver.support.ui import Select
  5. from selenium.common.exceptions import NoSuchElementException
  6. import unittest, time, re
  7.  
  8. class Prueba3(unittest.TestCase):
  9.    def setUp(self):
  10.        self.driver = webdriver.Firefox()
  11.        self.driver.implicitly_wait(30)
  12.        self.base_url = "http://playfulbet.com/usuarios/"
  13.        self.verificationErrors = []
  14.        self.accept_next_alert = True
  15.  
  16.    def test_prueba3(self):
  17.        for
  18.        b = 4
  19.        i="1"
  20.        driver = self.driver
  21.        driver.get(self.base_url + i)
  22.        driver.find_element_by_link_text("Entra y juega").click()
  23.        driver.find_element_by_link_text("Logueate").click()
  24.        driver.find_element_by_name("commit").click()
  25.        driver.find_element_by_id("follow").click()
  26.        driver.find_element_by_css_selector("#add_friend > b").click()
  27.  
  28.    def is_element_present(self, how, what):
  29.        try: self.driver.find_element(by=how, value=what)
  30.        except NoSuchElementException, e: return False
  31.        return True
  32.  
  33.    def is_alert_present(self):
  34.        try: self.driver.switch_to_alert()
  35.        except NoAlertPresentException, e: return False
  36.        return True
  37.  
  38.    def close_alert_and_get_its_text(self):
  39.        try:
  40.            alert = self.driver.switch_to_alert()
  41.            alert_text = alert.text
  42.            if self.accept_next_alert:
  43.                alert.accept()
  44.            else:
  45.                alert.dismiss()
  46.            return alert_text
  47.        finally: self.accept_next_alert = True
  48.  
  49.    def tearDown(self):
  50.        self.driver.quit()
  51.        self.assertEqual([], self.verificationErrors)
  52.  
  53. if __name__ == "__main__":
  54.    unittest.main()
  55.  

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.png

hasta 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
Páginas: [1] 2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines