Mostrar Mensajes

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 - manuromero73

Páginas: 1 [2]
21
Aprender a programar desde cero / Re: java swing ventana gráfica
« en: 02 de Octubre 2022, 20:57 »
Hola y gracias de nuevo. He mirado lo que dice el api de Java sobre SwingUtilities.invokeLater y veo que dice
Citar
public static void invokeLater(Runnable doRun)

Causes doRun.run() to be executed asynchronously on the AWT event dispatching thread. This will happen after all pending AWT events have been processed. This method should be used when an application thread needs to update the GUI. In the following example the invokeLater call queues the Runnable object doHelloWorld on the event dispatching thread and then prints a message.

 Runnable doHelloWorld = new Runnable() {
     public void run() {
         System.out.println("Hello World on " + Thread.currentThread());
     }
 };

 SwingUtilities.invokeLater(doHelloWorld);
 System.out.println("This might well be displayed before the other message.");
 

If invokeLater is called from the event dispatching thread -- for example, from a JButton's ActionListener -- the doRun.run() will still be deferred until all pending events have been processed. Note that if the doRun.run() throws an uncaught exception the event dispatching thread will unwind (not the current thread).

Additional documentation and examples for this method can be found in Concurrency in Swing.

As of 1.3 this method is just a cover for java.awt.EventQueue.invokeLater().

Unlike the rest of Swing, this method can be invoked from any thread.

See Also:
    invokeAndWait(java.lang.Runnable)

Con lo que has indicado lo entenderia así: si lo creamos con

Código: [Seleccionar]
public static void main(String[] args) {
new Main();
}

La ejecución de las instrucciones de creación - gestión de la ventana gráfica quedan dentro del hilo principal de la aplicación y puede ocurrir lo que tú comentabas: que si en un momento dado es necesario un redibujado pero el hilo principal está entretenido en un proceso que lo ocupa, no se produce el redibujado sino que la interfaz gráfica se queda congelada hasta que se concluye lo que esta ocupando al hilo principal.

De la otra manera la interfaz grafica va dentro de un hilo independiente de despacho de eventos donde un posible redibujado se produciria despues de que todos los eventos en cola hayan sido gestionados pero de forma independiente respecto al hilo principal con lo cual si este esta entretenido los demas hilos asincronos no se quedan bloqueados.

Y me imagino que aun habria otra manera de plantear esto, que seria no tenerlo ni en el hilo principal ni en el hilo de despacho de eventos, sino en un nuevo hilo que podriamos crear independiente de estos dos.

Todo esto no lo veo sencillo, pero no se si podriamos decir que mas o menos la idea seria esta.

22
Aprender a programar desde cero / Re: java swing ventana gráfica
« en: 24 de Septiembre 2022, 20:17 »
Hola Kabuto en primer lugar muchas gracias por el codigo y por la explicacion, rara vez se encuentra alguien que explique tan completo. Ya he entregado el ejercicio pero me gustaria llegar a entenderlo bien por eso le estoy dedicando algun rato libre para repasarlo todo. En el primer codigo, donde creas el panel principal con la toolkit veo una clase Main con el constructor Main(), una clase privada PanelPrincipal y el método main()
Aquí cuando se crea el objeto con new Main() entiendo que se crea "el marco" que es el JFrame y que sería transparente y dentro de este "el lienzo" que seria el JPanel y que sería opaco. Una primera duda es con pack(); si comento esta instrucción la ventana no se despliega sino que aparece minimizada. ¿Por que si ya se ha establecido dimensiones con setPreferredSize? setLocationRelativeTo(null); creo que posiciona en el centro de la pantalla pero si lo comento me sale igual porque ya estamos ocupando toda la pantalla entonces entiendo que ¿aqui podriamos quitarlo sin perjuicio para el resultado? Otra duda es el por que declarar la clase PanelPrincipal como privada de la clase Main en lugar de hacerlo como clase independiente ¿Cual seria la ventaja?

Otra cosa que veo es la invocacion de la ejecucion, aparentemente con

Código: [Seleccionar]
public static void main(String[] args) {
new Main();
}

El resultado es el mismo que con

Código: [Seleccionar]
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Main();
}
});

¿Cual seria la ventaja?


23
Aprender a programar desde cero / java swing ventana gráfica
« en: 10 de Septiembre 2022, 13:48 »
Hola me gustaría si me pueden ayudar con el ejercicico siguiente en Java.

Debe iniciar un programa con una ventana gráfica del tamaño de la pantalla del usuario. La ventana deberá dividirse de la siguiente manera. Un margen del 5% del tamaño de pantalla del usuario debe ser espacio libre. El espacio interior debe dividirse en dos mitades verticalmente. La mitad izquierda debe estar ocupada por un área donde el usuario pueda escribir a modo de text area. La mitad derecha debe estar ocupada en el 50 % superior por un label donde se podrán mostrar mensajes y en el 50 % inferior por dos botones centrados cuyo texto debe ser "Procesar" y "Borrar". Cuando el usuario pulse el botón Procesar en el Label se mostrará "Ha pulsado el botón procesar" y cuando pulse el botón Borrar se deberá borrar tanto el texto que pudiera existir en la caja de texto como el que pudiera existir en el label.

24
¿se puede crear la comunicacion entre dos computadores distintos o tiene que ser siempre en el mismo? Gracias

25
Gracias a los dos! De las dos maneras funciona y ya me estaba volviendo loco  :-[

26
Hola, le he dado muchas vueltas y no acabo de entender lo que ocurre con este codigo, se supone que en cada bucle tiene que pedir si se quiere continuar o no, pero en vez de permitirme introducir la respuesta después de haber dicho que se quiere continuar, termina el programa sin esperar a que se entre la respuesta ¿por qué y como lo soluciono? gracias por su ayuda

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>

int main() {
    char respuesta = 's';
    while (respuesta=='s' || respuesta=='S') {
        printf("Dime si quieres continuar (S/N): ");
        scanf("%c", &respuesta);
    }
    printf("Has salido del bucle");

    return 0;
}

27
Hola he visto en los foros hablar sobre programar en lenguaje sle2 pero no me queda claro qué lenguaje es o para qué sirve ¿alguien ha trabajado con esto?

28
puede que haya sido eso porque no me lo explico

29
gracias, era esa opción de borde de página. Lo que no entiendo es por qué apareció un borde de página si yo no lo puse en ningún momento

30
Perdón por haberlo puesto como mensaje privado, no me di cuenta.

Lo que decía es que no puedo, no me deja seleccionar línea, está como en el fondo, no puedo elegir sin borde  :(

31
Hola, seguro que es una tontería pero me sale una raya en la parte de abajo de la página de word 2007 y no puedo quitarla. Parece estar en el pie de página, pero entrando en el encabezado / pie parece como si estuviera en el fondo y no me deja seleccionarla ni eliminarla. Y llevo un rato!!!

32
De todo un poco... / Re:nueva tableta de microsoft
« en: 26 de Julio 2012, 11:18 »
Posiblemente Fredo lo que habría que hacer es consumir menos porque el mundo se ha vuelto nada más que consumismo y ya no se tienen los valores que existían antiguamente sino que todo es consumir y solo consumir

33
te agradezco esa opinión alastor, me parece bastante razonable, gracias

34
Gracias alastor por todas esas explicaciones, yo voy todavía un poco retrasado con todo lo que es el estudio, de hecho lo primero que me había planteado era qué podía ser mejor para aprender a programar, si usar c o usar c++, me gustaría que me dieras tu opinión

35
Por lo visto Microsoft ha lanzado una nueva tableta para competir con Apple, pero me temo que los seguidores de apple van a seguir siendo seguidores de apple hasta la muerte,al menos los que yo conozco son verdaderos fans de todo lo que sea mac

36
Creo que cuando me decida optaré por C++ por ser algo más avanzado, aunque la verdad es que resulta un poco confuso  :-\

37
De todo un poco... / Re:Facebook
« en: 05 de Abril 2012, 10:27 »
A Manuel le veo bastante razón en lo que dice. Hace unos años el envío de mensajes a través de teléfonos móviles estaba en su apogeo. Ahora con la llegada de los smartphones se está hablando cada vez más del famoso what´s up que es una especie de aplicación para enviar mensajes a través de internet, con lo cual lo que triunfa va cambiando rápidamente. Si facebook se queda en una moda fugaz lo sabremos dentro de poco

38
He estado ojeando este hilo y me parece de lo más interesante

39
Hola, estaba interesado en aprender algo de C y hay gente que me ha recomendado C y otros C++, otros me dicen que es más o menos lo mismo... por favor si alguien me puede aclarar las diferencias o cuál es mejor, gracias.

40
De todo un poco... / Re:Dichos y refranes populares
« en: 19 de Febrero 2012, 19:13 »
Mucho misterio en torno a este libro: "prefiero no hacer ningún comentario", "el que desee seguir indagando continue su trayectoria"... Habrá que localizarlo y echarle un vistazo. Ahora me ha picado la curiosidad. Puede que sea el típico libro de autoayuda o puede que no. O puede que sea el típico libro de frases maravillosas o puede que no. Para no quedarme con el dilema voy a buscarlo y leerlo, o al menos a tratar de leerlo.

Páginas: 1 [2]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".