Hola Matias, lo que te ha faltado es añadir el listener
public Ventana(){
setVisible(true);
setBounds(100,100,600,600);
add(Pintado);
Pintado.repaint();
//te falto esto
addMouseListener(this);
}
por eso es que no te repinta nada,
no se si tenias dudas de como enviar las coordenadas del mouse para que te dibuje la linea?
como no ha quedado claro solo me limito a contestar la parte que te pinte la linea
Links:
https://docs.oracle.com/javase/tutorial/uiswing/events/mouselistener.html
http://docs.oracle.com/javase/7/docs/api/java/awt/event/MouseListener.html
http://www.sc.ehu.es/sbweb/fisica/cursoJava/applets/events/raton.htm
saludos.
Hola gente! Soy nuevo en el foro asi que si hago pongo algo que no debería o mal puesto, lo siento.
Bueno, estaba tratando de hacer un programa el cual al pulsar sobre una ventana, se vaya dibujando una linea. Para hacer esto llegue a este punto:
Cita:
public class Dibujo {
public static void main(String[] args) {
Ventana a = new Ventana();
}
}
class Ventana extends JFrame implements MouseListener{
Pintar Pintado = new Pintar();
public Ventana(){
setVisible(true);
setBounds(100,100,600,600);
add(Pintado);
Pintado.repaint();
}
public void mouseClicked(MouseEvent arg0) {
Pintado.repaint();
}
public void mouseEntered(MouseEvent arg0) {}
public void mouseExited(MouseEvent arg0) {}
public void mousePressed(MouseEvent arg0) {
Pintado.repaint();
}
public void mouseReleased(MouseEvent arg0) {}
}
class Pintar extends JPanel{
int a = 100;
public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawLine(100, 100, 200, a);
a+=200;
}
}
En esas líneas de códigos trate de hacer que aparesca una linea en el JFrame, y luego al clickear sobre el JFrame, se hisiera otra línea mas(Para luego,pasarlo con las coordenadas X e Y del mouse y hacer que se dibujen las líneas), pero no logro que al hacer click se "repinte" y me aparesca la segunda línea.
Alguien sabe y me explicaria como funciona el paintCompoent? Y como debería usarlo en este caso.
Muchas gracias