Foro sobre Java SE > Dibujar grid en canvas java
Es el getGraphics();
es null en el momento que lo llamas.
sobrescribe el metodo paint y llama tu metodo desde ahi
public class MyCanvas extends Canvas {
public MyCanvas() {
setBackground(Color.WHITE);
drawGrid();
}
public void drawGrid(Graphics g){
int k;
int width = getSize().width;
int height = getSize().height;
int rows = 10;
int columns = 10;
int htOfRow = height / (rows);
for (k = 0; k < rows; k++) {
g.drawLine(0, k * htOfRow, width, k * htOfRow);
}
int wdOfRow = width / (columns);
for (k = 0; k < columns; k++) {
g.drawLine(k * wdOfRow, 0, k * wdOfRow, height);
}
public void paint (Graphics g)
{drawGrid(g);}
}
links que te pueden ayudar:
http://www.javaya.com.ar/detalleconcepto.php?codigo=130&inicio=40
http://recursosformacion.com/wordpress/2013/05/java-para-programadores-5-3los-metodos-graphics-y-paint/
por esas dudas existenciales
http://stackoverflow.com/questions/12175174/paintcomponent-vs-paint-and-jpanel-vs-canvas-in-a-paintbrush-type-gui
no te pongo más que esto los puedes encontrar tu fácilmente, pero son los que me han parecido más adecuados
nos cuentas.
saludos.
¡Funcionó! Muchísimas gracias.
Saludos.
de nada, me alegro que te haya servido.
saludos.
Hola.
Estoy intentando dibujar un grid en un canvas que tengo en mi programa java. Para ello tengo el siguiente código:
public class MyCanvas extends Canvas {
public MyCanvas() {
setBackground(Color.WHITE);
drawGrid();
}
public void drawGrid(){
int k;
int width = getSize().width;
int height = getSize().height;
int rows = 10;
int columns = 10;
Graphics g = getGraphics();
int htOfRow = height / (rows);
for (k = 0; k < rows; k++) {
g.drawLine(0, k * htOfRow, width, k * htOfRow);
}
int wdOfRow = width / (columns);
for (k = 0; k < columns; k++) {
g.drawLine(k * wdOfRow, 0, k * wdOfRow, height);
}
}
Sin embargo, al ejecutarlo obtengo un null pointer exception en los bucles for y no tengo ni la menor idea de por qué. ¿Alguien puede ayudarme?
Gracias.