Java - programa muy basico que me dibuje algo en la pantalla y que pueda mover el dibujo

 
Vista:
sin imagen de perfil
Val: 27
Ha aumentado su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

programa muy basico que me dibuje algo en la pantalla y que pueda mover el dibujo

Publicado por jose (12 intervenciones) el 22/04/2020 03:51:56
Hola,estoy intentando hacer un programa muy basico que me dibuje algo en la pantalla y que pueda mover el dibujo con las letras o con las flechas del teclado.
El caso es que después de un tiempo (y de preguntar en esta pagina algunas cosas) he llegado a esto:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import javax.swing.JFrame;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Dimension;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.KeyAdapter;
import java.lang.reflect.InvocationTargetException;
import javax.swing.SwingUtilities;
 
class Graficos extends JFrame implements Runnable{
 
	private JFrame vent;
 
	public void paint(Graphics g){
		super.paint(g);
		int posX=300;
		int posY=300;
 
		Personaje.dibuja(g,posX,posY);
	}
	public static void main (String [] args)throws InterruptedException, InvocationTargetException{
		SwingUtilities.invokeAndWait(new Graficos());
	}
	@Override
	public void run(){
		vent = new JFrame("Graficos");
		vent.setBounds(0,0,600,600);
		vent.setFocusable(true);
		vent.setVisible(true);
		vent.setResizable(false);
		vent.setLocationRelativeTo(null);
		vent.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		vent.addKeyListener(new KeyListener() {
 
			@Override
			public void keyTyped(KeyEvent e) { }
 
			@Override
			public void keyPressed(KeyEvent e) {
				System.out.println("Key Character: " + e.getKeyChar() + "; Key Code: " + KeyEvent.getKeyText(e.getKeyCode()));
 
			}
 
			@Override
			public void keyReleased(KeyEvent e) { }
 
		});
	}
 
}
La clase Personaje es simplemente esto:
1
2
3
4
5
6
7
8
9
10
11
import java.awt.Color;
import java.awt.Graphics;
 
class Personaje{
	public static void dibuja(Graphics g,int posX,int posY){
		g.setColor(new Color(127,127,127));
		g.fillRect(posX,posY,20,20);
		g.fillRect(posX+4,posY+20,4,10);
		g.fillRect(posX+12,posY+20,4,10);
	}
}

Cuando hago ambos programas por separado(uno que dibuje y otro que capture el teclado) me sale bien,pero el problema es que con esto me hace la frame y me captura el teclado,pero no entiendo bien el como hacer que me dibuje el dibujo a la vez. Mi pregunta no es que me lo resolvais diciendome el codigo, sino que alguien por favor me explique como haria que la clase paint entre en el frame,para que yo pueda entenderlo.(Se que tengo que cambiar las opciones dentro del addKeyListener para que se mueva con las teclas)
Muchas gracias por adelantado.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 27
Ha aumentado su posición en 3 puestos en Java (en relación al último mes)
Gráfica de Java

programa muy basico que me dibuje algo en la pantalla y que pueda mover el dibujo

Publicado por jose (12 intervenciones) el 22/04/2020 10:28:56
Vale,después de unas cuantas horas dándole vueltas ya he visto donde estaba el error y lo he arreglado, me faltaba el JPanel,y con eso ya puedo añadirlo al frame.
Gracias de todas formas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar