|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - silverfox
Páginas: 1 ... 4 5 [6] 7 8 ... 12
126
« en: Jueves 2 de Noviembre de 2006, 12:34 »
Hola.
¿Qué tal si los ordenas primero?
Silverfox.
127
« en: Jueves 2 de Noviembre de 2006, 12:31 »
Hola... vamos a ver: La creación de una sóla instancia de la clase viene dada por un patrón que se llama Singleton. La implementación de ese patrón en Java es de lo más sencillo. Para tu ejemplo: public class GUI extends Frame { private static GUI gui_unica= null; private GUI () { //constructor privado de GUI, hacer las tareas oportunas aqui. } public static GUI getInstance(){ if (gui_unica== null){ gui_unica= new GUI (); } return gui_unica; } ...
Así es imposible tener más de una instancia de esta clase, porque sucesivas llamadas a getInstance() te devolverán la primera que creaste. los datos hay ingresados no interesa que se pierda si no que por decirlo asi se mate ese Form y luego se pueda crear la instancia de nuevo No sé qué quieres hacer exactamente. Cuando dices que se cree la instancia de nuevo, supongo que quieres volver a crearla con los datos que tenía la última vez. Lo que te recomendaría para eso es que la hagas invisible y ya está (siempre que no sea una ventana modal) y podrás acceder a los datos que tiene sin problemas y cuando vuelvas a hacerla visible, conservará todo. Un saludo. Silverfox Editado: Corregir errores en el código.
128
« en: Martes 31 de Octubre de 2006, 12:01 »
StringReader lector= new StringReader(); BufferedReader is = [entrada de datos] while (is.ready()) lector.append(is.readLine()+"\n");
Si usas BufferedInputStream, tendrás que usar un ByteArrayInputStream o similar, pero la técnica es la misma. Así lees toda la entrada. Una vez que la tengas toda, mira la clase StringTokenizer, para partirla y procesar las partes que quieras. Un saludo. Silverfox
129
« en: Martes 31 de Octubre de 2006, 09:37 »
Hola...
Un socket, por definición es un canal de comunicación entre dos máquinas. Si quieres enviar la misma información a varias máquinas distintas, tendrás que usar sockets distintos. (O bien, cuando acabes un envío comienzas el siguiente, o bien, creando hebras que envíen cada una a un receptor distinto).
En cuanto a enviar la información, si miras la clase Socket, verás que no existe forma de escribir directamente. Usa los métodos getInputStream() y getOutputStream() y podrás utilizar read() y write() (O crea con los resultados objetos de I/O con buffer o Reader / Writer para leer o escribir por líneas). Metelo en un bucle while y que te mande el fichero hasta el final.
En el otro lado, tendrás que recogerlo. En realidad, no debería importar cómo lo recojas, siempre debería devolver el fichero original.
Espero que te sirva.
Saludos.
Silverfox
130
« en: Martes 31 de Octubre de 2006, 08:37 »
Lo tienes en google. Implementado y todo.
Silverfox.
131
« en: Martes 31 de Octubre de 2006, 08:30 »
Hola... Lamentablemente, lencho, tu solución también es incorrecta, en el sentido de que pierdes también la referencia al objeto Circulo. for (int i = 0; i < max; i++){ Circulo circ = new Circulo(r[i], x[i], y[i]); circ.setID(i); circ.dibujar(); }
Si te fijas, estás sobreescribiendo el objeto circ en cada vuelta de bucle, por lo que dará igual todo, sólo funcionará si sólo quieres dibujarlo una vez y luego olvidarte de todos los círculos excepto del último (y para eso ya servía el código de Nagisa) Editado: La última referencia a Circulo también la pierdes, porque es una variable local al bucle. En cuanto salgas del for, desaparecerá pasto del recogedor de basura Lo que habría que hacer sería crear un array de Circulo antes del bucle y guardar los datos alli (o un Vector mejor, en mi opinión): Vector todos_los_circulos= new Vector(); for (int i = 0; i < max; i++){ Circulo circ = new Circulo(r[i], x[i], y[i]); todos_los_circulos.add(circ); circ.dibujar(); }
De esta forma, puedes recuperar los Circulos posteriormente de la siguiene forma: Circulo mi_circulo_i = (Circulo) todos_los_circulos.get(i)
Suerte. Silverfox.
132
« en: Martes 31 de Octubre de 2006, 07:55 »
Hola... A ver estas respuestas: 1. que cuando le opriman un boton a la principal no me saque otra instancia de la que ya esta creada osea de los otros Frames si ya estan abiertos Si te sucede esto es que, dentro del método de proceso de eventos tienes un new JFrame (). Tendrías que hacer lo siguiente: Utiliza una variable JFrame como parte de tu formulario principal y ponla de inicio a null. Dentro de tu método haz: if (mi_jframe1 == null) mi_jframe= new JFrame()... else mi_jframe.setVisible(true) //Y / O cualquier otra acción que quieras. Para más información, puedes buscar por internet datos sobre el patrón Singleton (no tiene traducción), que es algo parecido a esto. 2. que cuando se cierre el frame se descargue completamente y no tengo que ponerle el visible en false No te recomiendo que hagas esto con tu ventana principal. Más aún, si en algún Frame guardas referencias a otros, porque los perderás. De todas formas, la forma de hacerlo existe. Echa un vistazo al API de Java, en la clase JFrame, en herencia de JavaSwing.WindowConstants, a la constante DISPOSE_ON_CLOSE. Espero que te sirva todo esto. Ya nos contarás. Suerte. Silverfox
133
« en: Lunes 30 de Octubre de 2006, 11:49 »
Hola... Empecemos por el principio... de.siemens.nest.fast.fxl.gui.views.pipeline.dialogs.util.JPanelEditor
Para evitar confusiones como la mía y mensajes de más en un hilo, para el futuro, si no es una clase del paquete estándar, pon, por favor, a qué extensión Java te refieres (ten en cuenta que nadie puede estar pendiente de cada nuevo API Java que anda por ahí ). Este paquete NO es un paquete estándar de Java, sino que forma parte del proyecto FXL (véase la página http://www.fxl-project.com/). En ella tienes tutoriales de uso del API, donde podrás encontrar algunos ejemplos de uso. Pero bueno... mirando la página del API fxl, la clase es una implementación de terceros del interfaz CellEditor, extendiendo la clase DefaultCellEditor. La clase CellEditor sirve para meter un componente en una tabla y poder editar desde ahí, vamos, lo típico que pinchas sobre una celda y te aparece una lista desplegable de opciones para que elijas cuál quieres poner en esa celda (parecido al conocido Excel). Espero que esto sí que te sirva. Un saludo. Silverfox
134
« en: Lunes 30 de Octubre de 2006, 11:21 »
Hola...
Por desgracia, Java no soporta (ni creo que lo haga en un futuro cercano) la sobrecarga de operadores.
Sin embargo, para comparaciones de objetos, tiene un 'truquillo' interesante, que puede ser utilizado en estos casos: El interfaz Comparable.
Este interfaz consta del método compareTo(Object) para comparar dos objetos cualesquiera (A partir de la versión 1.5.0, utiliza los templates Java para evitar comparaciones entre objetos diferentes).
De todas formas, puedes probar un truco que quizá te sirva, aunque puede que no en todos los casos de cadenas, es posible que sí te valga en el tuyo en particular.
Echa un vistazo al método int hashCode() de la clase Object (por tanto, heredado por todas sus subclases).
Un saludo.
Silverfox.
135
« en: Lunes 30 de Octubre de 2006, 10:51 »
Hola...
El error es bastante simple: Echa un vistazo a tus trazas y a la documentación y te darás cuenta de que el método executeUpdate(String), heredado del interface Statement devuelve un int y no un ResultSet.
Un saludo.
Silverfox
136
« en: Lunes 30 de Octubre de 2006, 10:45 »
Hola alemag.
Esta pregunta ya la tienes respondida. Usa el FocusEvent que recibes como parámetro para llamar a getOppositeComponent(). Luego con getName() obtienes el nombre del componente del componente que buscas.
Un saludo.
Silverfox
137
« en: Viernes 27 de Octubre de 2006, 07:58 »
Entonces, ¿podrías indicar de qué paquete estás hablando? JPanelEditor no aparece en el API estándar de java 1.4.2 ni en el 1.5.0. ¿Estás hablando de algún componente que no es predefinido? Puede que me engañe, pero sólo veo JPane y JEditorPanel, pero nada de JPanelEditor... Un saludo. Silverfox.
138
« en: Viernes 27 de Octubre de 2006, 07:52 »
Hola. Claro que te dice sólo qué clase de elemento es... No querrás que te indique el nombre de la variable en tiempo de ejecución... Si miras el API de Component, verás que tienes un método getName(). Lo único que tienes que hacer es un setName() en cada uno de los lugares que traten el foco de forma diferente y comparar las cadenas de nombres. Espero que te sirva. Un saludo.
139
« en: Jueves 26 de Octubre de 2006, 17:28 »
Hola...
Como ya te dije, la solución a tus problemas está en el API Java, en la clase FocusEvent, concretamente, en el método getOppositeComponent().
Un saludo.
Silverfox
140
« en: Jueves 26 de Octubre de 2006, 12:34 »
Hola.
En Google, busca: Java Almanac JEditorPane
El primer link, en la página que te aparece, busca el JEditorPane y pincha sobre el ejemplo que aparece. Así podrás ver algo de código.
Un saludo.
Silverfox
142
« en: Martes 24 de Octubre de 2006, 14:52 »
Hola... bastaría con lo siguiente:
Btn_Adicionar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { new Agregar_Cadena(txtfield.getText()); } });
Tendrás que ingeniartelas para darle acceso al textfield si no lo tienes. Si es una clase anónima dentro de la clase que contiene el textfield, puedes ponerle protected (o nada) y probar a llamarlo desde el actionPerformed quitando el this. Puede que no sea muy elegante, pero funciona.
Espero que te sirva.
Silverfox
143
« en: Martes 24 de Octubre de 2006, 14:45 »
Hola... Es lo malo de utilizar componentes que no son 'pure Java', que terminas haciendo llamadas nativas al sistema. He estado mirando y el reconocedor de IBM tiene también un motor para linux, con lo que quizá podrías utilizarlo para que funcionase en ese sistema operativo. Si has usado las bibliotecas correctamente, tendrías sólo llamadas al API estándar, por lo que debería funcionar sin problemas para todas las implementaciones de ese mismo API, independientemente de la implementación del mismo (y, por tanto, del SO que tenga la máquina). Si no, tendrás que hacer alguna modificación a tu código. En cuanto a que sea independiente de la plataforma,no he visto ningún motor que lo sea, así que tendrías que hacertelo tú, o bien, hacerlo sin motores externos. Si te decides por ello, echa un vistazo a las clases TargetDataLine y a este artículo que te enseña cómo manejar un micrófono en Java. Después tendrás que ponerte al día de temas como reconocimientos de voz, formatos de ficheros de audio y formas de comparar dos líneas curvas. Espero que te sirva. Un saludo. Silverfox
144
« en: Viernes 20 de Octubre de 2006, 11:10 »
Es algo complicado decirte lo que falla si no conocemos el código de Agregar_Cadena.
¿Puedes postearlo a ver qué es lo que le pasa?
Edit: De todas formas y ahora que lo pienso...
El addActionListener sólo se ejecuta una vez, cuando pasas por esa línea. Después lo que se ejecuta es el código dentro de la clase que has generado, que ya ha sido construida con el parámetro campo_edicion.getText().
Para hacer la prueba, mete un texto por defecto en campo_edición y comprueba lo que sale, que no puedo confirmartelo en este momento.
Un saludo.
Silverfox
145
« en: Jueves 19 de Octubre de 2006, 12:11 »
Hola...
Como supongo que sabrás, para extender una clase abstracta y que el resultado no sea abstracto, tienes que implementar todos los métodos abstractos que tenga.
En tu caso, la clase Agregar no implementa el método actionPerformed indicado en el interfaz EventListener.
Me temo que tendrás que escribir, o bien tu propio Listener, o bien, extender ActionEvent para añadirle la información que necesites, o buscarte otra manera de hacerlo, porque no se puede añadir más parámetros a ese método.
La última opción es llamar al ActionPerformed, detectar de dónde viene el evento y enviarlo a un método auxiliar que reciba los parámetros adicionales...
Seguiré mirando por si hay otra solución más elegante y más efectiva.
Un saludo.
Silverfox
146
« en: Jueves 19 de Octubre de 2006, 11:54 »
Hola...
Para que los frames charlen entre ellos, tendrás que tener una referencia de uno al otro, me explico:
O bien tienes una clase que contiene a los 2 JFrame que quieres que se comuniquen y un método de esa clase que resulta en pasar información del uno al otro (es básicamente lo que te comentó hernanvid).
La segunda opción es que tu JFrame principal sea el que construye al otro (como si fuese una ventana modal). Con una referencia del hijo al padre puedes pasarle toda la información que quieras, incluso, ejecutar su método setVisible(true).
Espero que te sirva.
Saludos.
Silverfox
147
« en: Jueves 19 de Octubre de 2006, 11:47 »
Hola...
Echa un vistazo a la clase FilePermission. Es posible que te valga. De todas formas, tendrás que mirar si la política de seguridad te deja cambiar los permisos de un archivo.
Espero que te sirva. Un saludo.
Silverfox
148
« en: Miércoles 18 de Octubre de 2006, 10:05 »
Con Runtime.exec() podrías abrir un navegador. Creo que puedes pasarle el parámetro de la página que quieres que abra.
La otra opción es leer con el método URL la página, pero tendrás que volcarla en algún sitio. La posibilidad está en usar un JTextPane o similar.
Espero que te sirva.
Un saludo.
Silverfox
149
« en: Martes 17 de Octubre de 2006, 10:32 »
Hola...
Bueno, empecemos por la pregunta más sencilla... ¿tienes los drivers de conexión jdbc para mysql?
Si te da algún error... por favor, indica cuál.
Un saludo.
Silverfox
150
« en: Martes 17 de Octubre de 2006, 09:10 »
Jejejeje... Me imaginaba algo así, por eso te remití al FreeTTS que era opensource y no tiene licencias de pago... En la página de cloudgarden, pincha sobre jsapi, en el menú de la izquierda, la última opción es pricing & licensing y ahí te indica precios y cómo adquirirla. Esperamos que te pongan buena nota en tu proyecto. Suerte. Silverfox
Páginas: 1 ... 4 5 [6] 7 8 ... 12
|
|
|