Escribir sobre un Canvas
Hola, me gustarÃa saber como se puede escribir texto sobre un Canvas, pero no un texto de antemano, sino el que tu quieras. Muchas gracias
Puedes ver la respuesta en el API de Java
http://java.sun.com/j2se/1.3/docs/api/
Canvas tiene tres métodos: addNotify, getAccesibleContent, y paint
el que más suena para pintar es "paint" que recibe como parámetro un objeto Graphics
Graphics a su vez tiene un monton de métoos, y entre ellos el método drawString, que recibe como parámetros un Stirng y dos coordenadas. DeberÃs por lo tanto:
Graphics g = new Graphics ( );
mi_canvas.paint ( g );
g.drawString ( StringConElTexto, POSICION_X_INICIO, POSICION_Y_INICIO );
podrás ademas cambiar el tipo de letra y el color que se representa dentro del canvas con métodos de la clase Graphics
por cierto, si no se pinta el texto es porque no se ha actualizado el Canvas. Para forzar que se actualice cuando tu quieras haz
mi_canvas.repaint ( );
y te mostrará el canvas y su contenido tal y como esté en ese momento.
Saludos
http://java.sun.com/j2se/1.3/docs/api/
Canvas tiene tres métodos: addNotify, getAccesibleContent, y paint
el que más suena para pintar es "paint" que recibe como parámetro un objeto Graphics
Graphics a su vez tiene un monton de métoos, y entre ellos el método drawString, que recibe como parámetros un Stirng y dos coordenadas. DeberÃs por lo tanto:
Graphics g = new Graphics ( );
mi_canvas.paint ( g );
g.drawString ( StringConElTexto, POSICION_X_INICIO, POSICION_Y_INICIO );
podrás ademas cambiar el tipo de letra y el color que se representa dentro del canvas con métodos de la clase Graphics
por cierto, si no se pinta el texto es porque no se ha actualizado el Canvas. Para forzar que se actualice cuando tu quieras haz
mi_canvas.repaint ( );
y te mostrará el canvas y su contenido tal y como esté en ese momento.
Saludos
Muchas gracias Jose, pero yo lo querÃa saber, es como puedo hacer, que sobre un canvas, se escriba de forma dinámica, no de forma estática, es decir, dar la oportunidad a un usuario de poner él sobre un canvas el texto que quiera.
Saludos
Saludos
otra cosa que se me ocurre:
podes facer tu propio "textField" a mano sobre el canvas. fijas un recuadro en el canvas y capturas eventos de teclado. cada vez que el usuario pulse con el raton en ese recuadro escuchas los eventos de teclado que aparezcan y escribes la tecla que pulse el usuario el canvas. El resultado será una especie de escritura dinámica en el Canvas... pero no es un desarrollo trivial
podes facer tu propio "textField" a mano sobre el canvas. fijas un recuadro en el canvas y capturas eventos de teclado. cada vez que el usuario pulse con el raton en ese recuadro escuchas los eventos de teclado que aparezcan y escribes la tecla que pulse el usuario el canvas. El resultado será una especie de escritura dinámica en el Canvas... pero no es un desarrollo trivial
Gracias Jose por tu ayuda. Voy a probarlo y ya te informaré del resultado final.
Saludos
Saludos
Vale :)
Pues además del Canvas, por un Panel en otro lado de la ventana, y sobre ese Panel coloca un TextField o un TextArea, junto con un boton de "Aceptar". Cuando pulse el botón capturas el evento y copias el contenido del TextField en el Canvas con lo que te he dicho :)
Ten en cuenta que un canvas es para dibujar, y no está pensado para escribir texto. Por lo tanto no podrás colocar nada para que escriba el usuario y vas a tener que hacerlo de forma indirecta :)
Espero haber resuelto tu duda. Si no es asà no dudes en seguir preguntando :)
Saludos
Pues además del Canvas, por un Panel en otro lado de la ventana, y sobre ese Panel coloca un TextField o un TextArea, junto con un boton de "Aceptar". Cuando pulse el botón capturas el evento y copias el contenido del TextField en el Canvas con lo que te he dicho :)
Ten en cuenta que un canvas es para dibujar, y no está pensado para escribir texto. Por lo tanto no podrás colocar nada para que escriba el usuario y vas a tener que hacerlo de forma indirecta :)
Espero haber resuelto tu duda. Si no es asà no dudes en seguir preguntando :)
Saludos