Newsgrupos.com  

Retroceder   Newsgrupos.com > Forum > Newsgroup es.comp.lenguajes.* Foro > Newsgroup es.comp.lenguajes.java
Registrarse Preguntas Frecuentes Lista de Foreros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




Respuesta
 
LinkBack Herramientas Desplegado
  #1 (permalink)  
Antiguo 11-08-2005, 15:00:19
Luis Angel Fdez. Fdez.
 
Mensajes: n/a
Predeterminado Problema con el paint según laversión del jdk

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hola

Estoy mirando un poco de Java2D y tengo este código de un
documento que saqué de la red:

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class grafica extends JFrame {
public grafica() {
super("Usando colores.");
setSize(400, 130);
setVisible(true);
}

public void paint(Graphics g) {
super.paint(g);
g.setColor(new Color(255, 0, 0));
g.fillRect(25, 25, 100, 20);
g.drawString("Actual RGB: "+g.getColor(), 130, 40);
}

public static void main(String args[]) {
grafica application = new grafica();
application.setDefaultCloseOperation(JFrame.EXIT_O N_CLOSE);
}
}

El problema es que si compilo y ejecuto con el jdk 1.5 pues
según lo ejecuto la ventana aparece sin pintar (tengo que tapar
la ventana y volver a descubrirla para que se pinte), sin
embargo compilando y ejecutando con un jdk 1.4.2, pues sale el
rectángulo colorado a la primera

¿Debo añadir algo para que funcione de forma correcta
utilizando el jdk 1.5? Estuve mirando en la página de Sun lo de
los cambios que se producen de una versión a otra, pero no me
pareció ver nada que me ayudase.

Algo que me llama la atención es que si en el método paint
pongo un System.out.println("Hola"); el mensaje sale según
aparece la ventana, pero sin embargo el rectángulo rojo y lo de
'Actual RGB...' no.

Ta llueu.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)

iD8DBQFC+1nt36vTd3lGvCgRAuRGAJ0SoGOsg07xmTWBbjop/OLFiQutDQCeMrl2
92Xy44B3nu1C7EWY+bEPB1o=
=BDgk
-----END PGP SIGNATURE-----

--
Slackware 10.1.0 Kernel 2.6.12.2 i686 (GCC) 3.3.6
AMD Athlon(tm) 64 Processor 3200+ ( 2200.932MHz )
Linux User #99754 Jabber: koxo***jabber.org
Hattrick: C.D. Arrancatapinos (488047) VI.759
Responder Con Cita
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Newsgrupos.com
Standard Sponsored Links

  #2 (permalink)  
Antiguo 12-08-2005, 14:24:36
Will
 
Mensajes: n/a
Predeterminado Re: Problema con el paint según la versión del jdk

Es extraño, porque yo tengo la versión 1.5.0_02 y me sale a la primera...
Responder Con Cita
  #3 (permalink)  
Antiguo 12-08-2005, 14:24:36
Will
 
Mensajes: n/a
Predeterminado Re: Problema con el paint según la versión del jdk

Es extraño, porque yo tengo la versión 1.5.0_02 y me sale a la primera...
Responder Con Cita
  #4 (permalink)  
Antiguo 12-08-2005, 14:24:36
Will
 
Mensajes: n/a
Predeterminado Re: Problema con el paint según la versión del jdk

Es extraño, porque yo tengo la versión 1.5.0_02 y me sale a la primera...
Responder Con Cita
  #5 (permalink)  
Antiguo 12-08-2005, 14:58:49
Tito
 
Mensajes: n/a
Predeterminado Re: Problema con el paint según la versión del jdk

Lo primero advertirte que estás dibujando directamente en el JFrame, que
es un componente contenedor que ya tiene un componente hijo, que es de
clase JRootPane, que a su vez tiene un componente hijo de clase
JLayeredPane, que a su vez tiene un componente hijo: el famoso contentPane.

Así que estás dibujando sobre el Graphics de un contenedor que tiene ya
una estructura de componentes por debajo de él. No es buena idea. Lo
mejor es metas un JPanel en el contentPane. Este JPanel es al que has de
sobreescribir el método paintComponent (mejor que sobreescribir paint()
para el caso de componentes de peso ligero).

Estuve haciendo pruebas de tu programa con JDK 1.5.0_02.

Pude comprobar que:

1. Al aparecer el JFrame por primera vez, todo se dibuja bien.

2. Al hacer más pequeña la ventana, se dibuja bien.

3. Al agrandar la ventana se dibuja mal porque, como último paso, el
contentPane se pinta entero, tapando lo que se había pintado previamente
dentro de paint(). Esto no sé explicarlo, no he llegado a entender por
qué pasa.

La diferencia que hay entre las situaciones 1 y 2 es que el objeto
Graphics que se pasa al método tiene unos clipBounds diferentes, claro.
En esa dirección tiene que ir la explicación.

Saludos,
Tito
Responder Con Cita
  #6 (permalink)  
Antiguo 12-08-2005, 14:58:49
Tito
 
Mensajes: n/a
Predeterminado Re: Problema con el paint según la versión del jdk

Lo primero advertirte que estás dibujando directamente en el JFrame, que
es un componente contenedor que ya tiene un componente hijo, que es de
clase JRootPane, que a su vez tiene un componente hijo de clase
JLayeredPane, que a su vez tiene un componente hijo: el famoso contentPane.

Así que estás dibujando sobre el Graphics de un contenedor que tiene ya
una estructura de componentes por debajo de él. No es buena idea. Lo
mejor es metas un JPanel en el contentPane. Este JPanel es al que has de
sobreescribir el método paintComponent (mejor que sobreescribir paint()
para el caso de componentes de peso ligero).

Estuve haciendo pruebas de tu programa con JDK 1.5.0_02.

Pude comprobar que:

1. Al aparecer el JFrame por primera vez, todo se dibuja bien.

2. Al hacer más pequeña la ventana, se dibuja bien.

3. Al agrandar la ventana se dibuja mal porque, como último paso, el
contentPane se pinta entero, tapando lo que se había pintado previamente
dentro de paint(). Esto no sé explicarlo, no he llegado a entender por
qué pasa.

La diferencia que hay entre las situaciones 1 y 2 es que el objeto
Graphics que se pasa al método tiene unos clipBounds diferentes, claro.
En esa dirección tiene que ir la explicación.

Saludos,
Tito
Responder Con Cita
  #7 (permalink)  
Antiguo 12-08-2005, 14:58:49
Tito
 
Mensajes: n/a
Predeterminado Re: Problema con el paint según la versión del jdk

Lo primero advertirte que estás dibujando directamente en el JFrame, que
es un componente contenedor que ya tiene un componente hijo, que es de
clase JRootPane, que a su vez tiene un componente hijo de clase
JLayeredPane, que a su vez tiene un componente hijo: el famoso contentPane.

Así que estás dibujando sobre el Graphics de un contenedor que tiene ya
una estructura de componentes por debajo de él. No es buena idea. Lo
mejor es metas un JPanel en el contentPane. Este JPanel es al que has de
sobreescribir el método paintComponent (mejor que sobreescribir paint()
para el caso de componentes de peso ligero).

Estuve haciendo pruebas de tu programa con JDK 1.5.0_02.

Pude comprobar que:

1. Al aparecer el JFrame por primera vez, todo se dibuja bien.

2. Al hacer más pequeña la ventana, se dibuja bien.

3. Al agrandar la ventana se dibuja mal porque, como último paso, el
contentPane se pinta entero, tapando lo que se había pintado previamente
dentro de paint(). Esto no sé explicarlo, no he llegado a entender por
qué pasa.

La diferencia que hay entre las situaciones 1 y 2 es que el objeto
Graphics que se pasa al método tiene unos clipBounds diferentes, claro.
En esa dirección tiene que ir la explicación.

Saludos,
Tito
Responder Con Cita
  #8 (permalink)  
Antiguo 12-08-2005, 18:28:21
Luis Angel Fdez. Fdez.
 
Mensajes: n/a
Predeterminado Re: Problema con el paint según laversión del jdk

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

A las 13:58 del viernes 12 de agosto,
Tito <titogarcia_borra_esto***gmail.com>
hablando de Re: Problema con el paint según la versión del jdk
en es.comp.lenguajes.java dijo...

Hola

> Lo primero advertirte que estás dibujando directamente en el
> JFrame, que es un componente contenedor que ya tiene un
> componente hijo, que es de clase JRootPane, que a su vez tiene
> un componente hijo de clase JLayeredPane, que a su vez tiene un
> componente hijo: el famoso contentPane.


Pues vaya :-O. La verdad, es que el código ese es un ejemplo de
un documento que saqué de por ahí, porque yo de momento no
estoy muy puesto en esto.

> Así que estás dibujando sobre el Graphics de un contenedor que
> tiene ya una estructura de componentes por debajo de él. No es
> buena idea. Lo mejor es metas un JPanel en el contentPane. Este
> JPanel es al que has de sobreescribir el método paintComponent
> (mejor que sobreescribir paint() para el caso de componentes de
> peso ligero).


Vale, me apunto esto y lo miraré con mas detenimiento.

> Estuve haciendo pruebas de tu programa con JDK 1.5.0_02.


Yo tengo... 1.5.0_04.

> Pude comprobar que:
>
> 1. Al aparecer el JFrame por primera vez, todo se dibuja bien.


Pues a mi me sale una ventana en blanco. Ah, y en mi post
original, puse algo incorrecto. Puse que si añadía un
System.out.println("Hola");, al ejecutar el programa salía el
'Hola' por pantalla pero no se pintaba nada en la ventana. Pues
bien, no, no sale el 'Hola', así que debo suponer que de la que
se muestra la ventana no se llama al método paint :-O

> 2. Al hacer más pequeña la ventana, se dibuja bien.


También pasa de mi ¡me tiene manía!

> 3. Al agrandar la ventana se dibuja mal porque, como último
> paso, el contentPane se pinta entero, tapando lo que se había
> pintado previamente dentro de paint(). Esto no sé explicarlo,
> no he llegado a entender por qué pasa.


Esto también me pasa a mi. Bueno, al menos a mi me da todos los
fallos XD

> La diferencia que hay entre las situaciones 1 y 2 es que el
> objeto Graphics que se pasa al método tiene unos clipBounds
> diferentes, claro. En esa dirección tiene que ir la
> explicación.


¿Sería mucha molestía que me explicases esto? De todas formas
empezaré a echarle un vistazo al libro 'Java 2D Graphics' a ver
si veo algo.

Muchas gracias por tu respuesta. Miraré lo de utilizar un
JPanel y a ver que sale.

> Saludos,


Ta llueu.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)

iD8DBQFC/Nw136vTd3lGvCgRAh0AAJ9fThyszaErQ/F83H/fN4kEC8kp3ACeKkA4
TrSrbVnv625toBQU7/bz8d0=
=LxnQ
-----END PGP SIGNATURE-----

--
Slackware 10.1.0 Kernel 2.6.12.2 i686 (GCC) 3.3.6
AMD Athlon(tm) 64 Processor 3200+ ( 2200.932MHz )
Linux User #99754 Jabber: koxo***jabber.org
Hattrick: C.D. Arrancatapinos (488047) VI.759
Responder Con Cita
  #9 (permalink)  
Antiguo 12-08-2005, 18:28:21
Luis Angel Fdez. Fdez.
 
Mensajes: n/a
Predeterminado Re: Problema con el paint según laversión del jdk

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

A las 13:58 del viernes 12 de agosto,
Tito <titogarcia_borra_esto***gmail.com>
hablando de Re: Problema con el paint según la versión del jdk
en es.comp.lenguajes.java dijo...

Hola

> Lo primero advertirte que estás dibujando directamente en el
> JFrame, que es un componente contenedor que ya tiene un
> componente hijo, que es de clase JRootPane, que a su vez tiene
> un componente hijo de clase JLayeredPane, que a su vez tiene un
> componente hijo: el famoso contentPane.


Pues vaya :-O. La verdad, es que el código ese es un ejemplo de
un documento que saqué de por ahí, porque yo de momento no
estoy muy puesto en esto.

> Así que estás dibujando sobre el Graphics de un contenedor que
> tiene ya una estructura de componentes por debajo de él. No es
> buena idea. Lo mejor es metas un JPanel en el contentPane. Este
> JPanel es al que has de sobreescribir el método paintComponent
> (mejor que sobreescribir paint() para el caso de componentes de
> peso ligero).


Vale, me apunto esto y lo miraré con mas detenimiento.

> Estuve haciendo pruebas de tu programa con JDK 1.5.0_02.


Yo tengo... 1.5.0_04.

> Pude comprobar que:
>
> 1. Al aparecer el JFrame por primera vez, todo se dibuja bien.


Pues a mi me sale una ventana en blanco. Ah, y en mi post
original, puse algo incorrecto. Puse que si añadía un
System.out.println("Hola");, al ejecutar el programa salía el
'Hola' por pantalla pero no se pintaba nada en la ventana. Pues
bien, no, no sale el 'Hola', así que debo suponer que de la que
se muestra la ventana no se llama al método paint :-O

> 2. Al hacer más pequeña la ventana, se dibuja bien.


También pasa de mi ¡me tiene manía!

> 3. Al agrandar la ventana se dibuja mal porque, como último
> paso, el contentPane se pinta entero, tapando lo que se había
> pintado previamente dentro de paint(). Esto no sé explicarlo,
> no he llegado a entender por qué pasa.


Esto también me pasa a mi. Bueno, al menos a mi me da todos los
fallos XD

> La diferencia que hay entre las situaciones 1 y 2 es que el
> objeto Graphics que se pasa al método tiene unos clipBounds
> diferentes, claro. En esa dirección tiene que ir la
> explicación.


¿Sería mucha molestía que me explicases esto? De todas formas
empezaré a echarle un vistazo al libro 'Java 2D Graphics' a ver
si veo algo.

Muchas gracias por tu respuesta. Miraré lo de utilizar un
JPanel y a ver que sale.

> Saludos,


Ta llueu.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)

iD8DBQFC/Nw136vTd3lGvCgRAh0AAJ9fThyszaErQ/F83H/fN4kEC8kp3ACeKkA4
TrSrbVnv625toBQU7/bz8d0=
=LxnQ
-----END PGP SIGNATURE-----

--
Slackware 10.1.0 Kernel 2.6.12.2 i686 (GCC) 3.3.6
AMD Athlon(tm) 64 Processor 3200+ ( 2200.932MHz )
Linux User #99754 Jabber: koxo***jabber.org
Hattrick: C.D. Arrancatapinos (488047) VI.759
Responder Con Cita
 
  #10 (permalink)  
Antiguo 12-08-2005, 18:28:21
Luis Angel Fdez. Fdez.
 
Mensajes: n/a
Predeterminado Re: Problema con el paint según laversión del jdk

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

A las 13:58 del viernes 12 de agosto,
Tito <titogarcia_borra_esto***gmail.com>
hablando de Re: Problema con el paint según la versión del jdk
en es.comp.lenguajes.java dijo...

Hola

> Lo primero advertirte que estás dibujando directamente en el
> JFrame, que es un componente contenedor que ya tiene un
> componente hijo, que es de clase JRootPane, que a su vez tiene
> un componente hijo de clase JLayeredPane, que a su vez tiene un
> componente hijo: el famoso contentPane.


Pues vaya :-O. La verdad, es que el código ese es un ejemplo de
un documento que saqué de por ahí, porque yo de momento no
estoy muy puesto en esto.

> Así que estás dibujando sobre el Graphics de un contenedor que
> tiene ya una estructura de componentes por debajo de él. No es
> buena idea. Lo mejor es metas un JPanel en el contentPane. Este
> JPanel es al que has de sobreescribir el método paintComponent
> (mejor que sobreescribir paint() para el caso de componentes de
> peso ligero).


Vale, me apunto esto y lo miraré con mas detenimiento.

> Estuve haciendo pruebas de tu programa con JDK 1.5.0_02.


Yo tengo... 1.5.0_04.

> Pude comprobar que:
>
> 1. Al aparecer el JFrame por primera vez, todo se dibuja bien.


Pues a mi me sale una ventana en blanco. Ah, y en mi post
original, puse algo incorrecto. Puse que si añadía un
System.out.println("Hola");, al ejecutar el programa salía el
'Hola' por pantalla pero no se pintaba nada en la ventana. Pues
bien, no, no sale el 'Hola', así que debo suponer que de la que
se muestra la ventana no se llama al método paint :-O

> 2. Al hacer más pequeña la ventana, se dibuja bien.


También pasa de mi ¡me tiene manía!

> 3. Al agrandar la ventana se dibuja mal porque, como último
> paso, el contentPane se pinta entero, tapando lo que se había
> pintado previamente dentro de paint(). Esto no sé explicarlo,
> no he llegado a entender por qué pasa.


Esto también me pasa a mi. Bueno, al menos a mi me da todos los
fallos XD

> La diferencia que hay entre las situaciones 1 y 2 es que el
> objeto Graphics que se pasa al método tiene unos clipBounds
> diferentes, claro. En esa dirección tiene que ir la
> explicación.


¿Sería mucha molestía que me explicases esto? De todas formas
empezaré a echarle un vistazo al libro 'Java 2D Graphics' a ver
si veo algo.

Muchas gracias por tu respuesta. Miraré lo de utilizar un
JPanel y a ver que sale.

> Saludos,


Ta llueu.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)

iD8DBQFC/Nw136vTd3lGvCgRAh0AAJ9fThyszaErQ/F83H/fN4kEC8kp3ACeKkA4
TrSrbVnv625toBQU7/bz8d0=
=LxnQ
-----END PGP SIGNATURE-----

--
Slackware 10.1.0 Kernel 2.6.12.2 i686 (GCC) 3.3.6
AMD Athlon(tm) 64 Processor 3200+ ( 2200.932MHz )
Linux User #99754 Jabber: koxo***jabber.org
Hattrick: C.D. Arrancatapinos (488047) VI.759
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema adicional de I-Worm/Bagle con carpetas Hidden segun perfi devhi0000 Newsgroup microsoft.public.es.windows.server.general 2 20-04-2008 04:31:00
Paint: resolución del color javimer Newsgroup microsoft.public.es.windowsxp.aplicaciones 0 30-01-2008 15:01:04
ActiveX lapiz de paint Jesus Suarez Newsgroup microsoft.public.es.asp 0 27-11-2007 17:33:01
Paint Maria Newsgroup microsoft.public.es.windowsxp.aplicaciones 10 09-07-2007 10:28:16
ms Paint con jpeg fran Newsgroup microsoft.public.es.photodraw 0 28-10-2003 15:41:00





Powered by: vBulletin, Versión 3.6.8
Derechos de Autor ©2000 - 2008, Jelsoft Enterprises Ltd.

LinkBacks Enabled by vBSEO 3.1.0 © 2007, Crawlability, Inc.