Foro de elhacker.net

Programación => Java => Mensaje iniciado por: PabloPbl en 19 Febrero 2015, 22:14 pm



Título: [Duda]Como obtengo el contexto gráfico de un panel para dibujarlo en otro panel
Publicado por: PabloPbl 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.  



Título: Re: [Duda]Como obtengo el contexto gráfico de un panel para dibujarlo en otro panel
Publicado por: Usuario Invitado 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.


Título: Re: [Duda]Como obtengo el contexto gráfico de un panel para dibujarlo en otro panel
Publicado por: PabloPbl 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.