1
我有一个JPanel
对象,我使用它作为绘制矩形形状的画布,并且每当我在我的main中调用该方法时,调用updateString(String c, int x, int)
方法绘制一个String c
。drawString方法不起作用
我的代码顶部也有一个名为private Graphics page;
的局部变量。下面是updateString()
方法:
public void updateString(String c, int ind1, int ind2)
{
for(int i = 0; i < Math.pow(DIMENSION, 2); i++)
if(grid[i].contains(new Point(ind1, ind2)))
{
page.drawString(c, (int) grid[i].getCenterX(), (int) grid[i].getCenterY());
repaint();
return;
}
}
电网[]是我Rectangle
对象的数组存储Rectangle
对象的数据,我实际上把他们我paintComponent()
方法内。
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
page = g;
for(int i = 0; i < Math.pow(DIMENSION, 2); i++)
{
g.drawRect(grid[i].x, grid[i].y, grid[i].width, grid[i].height);
}
}
,我不能说明白点就是为什么每当我叫updateString()
方法,它只是不更新,并把字符串在我最初绘制的矩形的中间?
谢谢。
啊哈所以它只是当方法结束时自行终止。但是有什么方法可以在另一种方法中进行绘图吗? – 2015-04-03 12:03:40
@VerumInfiniti:为什么不在中间放一个JLabel并设置它的文本? – 2015-04-03 12:05:29
因为我的任务是这样告诉我的,无论如何,我会按照你的方式去做。我之前已经考虑过,但是,不能确定,因为我认为必须有一种方法来做这个简单的drawString事情。 – 2015-04-03 12:08:07