Foros del Web » Programación para mayores de 30 ;) » Java »

Graphics Paint

Estas en el tema de Graphics Paint en el foro de Java en Foros del Web. Hola, muy buenas tengo el siguiente problema: Tengo esto: Código: private void paint(Graphics grafica){ super.paint(grafica); Graphics2D g2 = (Graphics2D) grafica; g2.drawImage(casa.tenerImagen(), casa.tenerX(), casa.tenerY(), null); } ...
  #1 (permalink)  
Antiguo 22/09/2013, 11:23
Avatar de TSG
TSG
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 373
Antigüedad: 10 años, 7 meses
Puntos: 9
Información Graphics Paint

Hola, muy buenas tengo el siguiente problema:

Tengo esto:

Código:
private void paint(Graphics grafica){
		super.paint(grafica);
		
		Graphics2D g2 = (Graphics2D) grafica;
		g2.drawImage(casa.tenerImagen(), casa.tenerX(), casa.tenerY(), null);
	}
Y me da el erro (me subraya) lo siguiente:

Código:
paint(Graphics grafica)
Eso es lo que me señala en error... ¿Por qué puede ser?.

Saludos.
  #2 (permalink)  
Antiguo 23/09/2013, 09:47
Avatar de TSG
TSG
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 373
Antigüedad: 10 años, 7 meses
Puntos: 9
Exclamación Respuesta: Graphics Paint

¿Alguna idea del problema?
  #3 (permalink)  
Antiguo 23/09/2013, 11:28
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 10 años, 11 meses
Puntos: 9
Respuesta: Graphics Paint

¿Y cual es la exception que te da el error?
  #4 (permalink)  
Antiguo 23/09/2013, 12:11
Avatar de TSG
TSG
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 373
Antigüedad: 10 años, 7 meses
Puntos: 9
Pregunta Respuesta: Graphics Paint

Supuestamente es este ya que cuando paso el mouse me sale esto:


Código:
Cannot reduce the visibility of the inherited method from JComponent
  #5 (permalink)  
Antiguo 23/09/2013, 16:08
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 10 años, 11 meses
Puntos: 9
Respuesta: Graphics Paint

¿Ese método esta en una clase que hereda de otra?¿ dicho método también esta en la clase padre?
  #6 (permalink)  
Antiguo 24/09/2013, 07:38
Avatar de TSG
TSG
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 373
Antigüedad: 10 años, 7 meses
Puntos: 9
Información Respuesta: Graphics Paint

Bueno para no complicar las cosas te dejo aquí lo que es los códigos completo de 3 archivos (movimientos con teclas):

el principal:

movi_teclas:

Código:
package unprograma;

import javax.swing.*;

public class movi_teclas extends JFrame {
	
	public movi_teclas(){
		super("Prueba ventana");
		add(new dibujar());
		setSize(800,600);
		setVisible(true);
		setResizable(false);
		setLocationRelativeTo(null);
	}
	
	public static void main (String args[]){
		
		new movi_teclas();
	}

}

casa:

Código:
package unprograma;

import java.awt.Image;
import java.awt.event.KeyEvent;
import javax.swing.*;

public class casa {
	
	private String casa = "logo.png";
	
	private int dx;
	private int dy;
	private int x;
	private int y;
	
	private Image imagen;
	
	public casa(){
		x=40;
		y=60;
		
		ImageIcon img = new ImageIcon(this.getClass().getResource(casa));
		imagen = img.getImage();
	}
	
	public void mover(){
		x+=dx;
		y+=dy;
	}
	
	public int tenerX(){
		return x;
		
	}
	
	public int tenerY(){
		return y;
		
	}
	
	public Image tenerImagen(){
		return imagen;
		
	}
	
	public void KeyPressed(KeyEvent e){
		int key = e.getKeyCode();
		
		if(key == KeyEvent.VK_LEFT){
			dx = -1;
			
		}
		
        if(key == KeyEvent.VK_RIGHT){
        	dx = 1;
			
		}
        
        if(key == KeyEvent.VK_UP){
        	dy = -1;
			
		}
        
        if(key == KeyEvent.VK_DOWN){
        	dy = 1;
			
		}
	}
	
	public void KeyReleased(KeyEvent e){
		int key = e.getKeyCode();
		
		if(key == KeyEvent.VK_LEFT){
			dx = 0;
			
		}
		
        if(key == KeyEvent.VK_RIGHT){
        	dx = 0;
			
		}
        
        if(key == KeyEvent.VK_UP){
        	dy = 0;
			
		}
        
        if(key == KeyEvent.VK_DOWN){
        	dy = 0;
			
		}
	}

}

Y por último el archivo donde me da el error del graphics:

dibujar:

Código:
package unprograma;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class dibujar extends JPanel implements ActionListener {
	
	private casa casa;
	private Timer timer;
	
	public dibujar(){
		setBackground(Color.black);
		setFocusable(true);
		addKeyListener(new teclado());
		
		casa = new casa();
		timer =new Timer(5, this);
		timer.start();
	}
	
	private void paint(Graphics grafica){
		super.paint(grafica);
		
		Graphics2D g2 = (Graphics2D) grafica;
		g2.drawImage(casa.tenerImagen(), casa.tenerX(), casa.tenerY(), null);
	}
	
	public void actionPerformed(ActionEvent e){
		
		casa.mover();
		repaint();
	}
	
	public class teclado extends KeyAdapter{
		
		public void keyReleased(KeyEvent e){
			casa.KeyReleased(e);
			
		}
		
		public void keyPressed(KeyEvent e){
			casa.KeyPressed(e);
			
		}
	}

}
Saludos.
  #7 (permalink)  
Antiguo 24/09/2013, 08:59
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 10 años, 11 meses
Puntos: 9
Respuesta: Graphics Paint

El método paint lo tienes declarado como private, este método también se encuentra en la clase JComponent y allí esta declarado como public, también tienes que declararlo como public en tu clase.
  #8 (permalink)  
Antiguo 24/09/2013, 09:44
Avatar de TSG
TSG
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 373
Antigüedad: 10 años, 7 meses
Puntos: 9
Información Respuesta: Graphics Paint

¿Entonces que debería cambiar private por public? ¿A eso te refieres o cómo?.


Código:
public void paint(Graphics grafica){
		super.paint(grafica);
		
		Graphics2D g2 = (Graphics2D) grafica;
		g2.drawImage(casa.tenerImagen(), casa.tenerX(), casa.tenerY(),

:O Sí ya me vale puse public y me vale muchas gracias.

Saludos.

Etiquetas: paint
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:08.