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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [Duda]Como obtengo el contexto gráfico de un panel para dibujarlo en otro panel
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Duda]Como obtengo el contexto gráfico de un panel para dibujarlo en otro panel  (Leído 4,242 veces)
PabloPbl

Desconectado Desconectado

Mensajes: 188


Ver Perfil
[Duda]Como obtengo el contexto gráfico de un panel para dibujarlo en otro panel
« en: 19 Febrero 2015, 22:14 pm »

Hola gente, necesito obtener el contenido gráfico(Los cuadrados y esas cosas) de un JPanel y pintarlo en mi JPanel principal, es decir:
Tengo 2 clases las cuales heredan de JPanel, pues ¿Como obtendría el contenido gráfico de un JPanel, y pintarlo en otro?
Cuando digo contenido gráfico, me estoy refiero a las figuras geométricas que se pintan en pantalla como el cuadrado con fillRect(); etc.

Yo lo intente hacer de esta manera, pero no me funciono:

Este es el primer JPanel:
Código
  1. import java.awt.Dimension;
  2. import java.awt.Graphics;
  3.  
  4. import javax.swing.JPanel;
  5.  
  6.  
  7. public class GamePanel extends JPanel{
  8. Maps mapa;
  9.  
  10. public GamePanel() {
  11. setPreferredSize(new Dimension(640, 480));
  12. setFocusable(true);
  13. requestFocus();
  14. mapa = new Maps();
  15. }
  16. public void paintComponent(Graphics g) {
  17. paintComponent(mapa.getGraphics());//ESTA LINEA ME DA ERROR AL QUERER OBTENER LOS GRAFICOS DEL OTRO JPANEL
  18. }
  19. }
  20.  


Y este es mi segundo JPanel:
Código
  1. import java.awt.Color;
  2. import java.awt.Dimension;
  3. import java.awt.Graphics;
  4.  
  5. import javax.swing.JPanel;
  6.  
  7.  
  8. public class Maps extends JPanel{
  9.  
  10. public Maps() {
  11. setPreferredSize(new Dimension(640, 480));
  12. }
  13.  
  14. public void paintComponent(Graphics g) {
  15. g.setColor(Color.red);
  16. g.fillRect(0, 0, 640, 480);
  17. }
  18. }
  19.  



« Última modificación: 19 Febrero 2015, 22:36 pm por PabloPbl » En línea

Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: [Duda]Como obtengo el contexto gráfico de un panel para dibujarlo en otro panel
« Respuesta #1 en: 20 Febrero 2015, 00:07 am »

Prueba con el método getComponents(), que devuelve un arreglo que contiene todos los elementos de un JPanel. Ésto es posible porque  JPanel implementa Container.

Salu2.


En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
PabloPbl

Desconectado Desconectado

Mensajes: 188


Ver Perfil
Re: [Duda]Como obtengo el contexto gráfico de un panel para dibujarlo en otro panel
« Respuesta #2 en: 20 Febrero 2015, 01:25 am »

Intente hacerlo con getComponents(); de la siguiente manera:

Código
  1. import java.awt.Dimension;
  2. import java.awt.Graphics;
  3.  
  4. import javax.swing.JPanel;
  5.  
  6.  
  7. public class GamePanel extends JPanel{
  8. Maps mapa;
  9.  
  10. public GamePanel() {
  11. setPreferredSize(new Dimension(640, 480));
  12. setFocusable(true);
  13. requestFocus();
  14. mapa = new Maps();
  15. }
  16. public void paintComponent(Graphics g) {
  17. paintComponent(mapa.getComponents());//ESTA LINEA ME DA ERROR AL QUERER OBTENER LOS GRAFICOS DEL OTRO JPANEL
  18. }
  19. }
  20.  

Lo he intentado pero es imposible, ya que el método paintComponent recibe Graphics:

Tambien intente pasandole como parametro, los graficos del otro JPanel,de la siguiente manera:

Código
  1. import java.awt.Dimension;
  2. import java.awt.Graphics;
  3.  
  4. import javax.swing.JPanel;
  5.  
  6.  
  7. public class GamePanel extends JPanel{
  8. Maps mapa;
  9.  
  10. public GamePanel() {
  11. setPreferredSize(new Dimension(640, 480));
  12. setFocusable(true);
  13. requestFocus();
  14. mapa = new Maps();
  15. }
  16. public void paintComponent(Graphics g) {
  17. paintComponent(mapa.getGraphics());//ESTA LINEA ME DA ERROR AL QUERER OBTENER LOS GRAFICOS DEL OTRO JPANEL
  18. }
  19. }
  20.  

Pero no hay caso, no se pinta el panel.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines