0

如何重绘更新的变量,例如我正在测试以下代码

 public void paintComponent(Graphics g) {
     Dimension d = this.getPreferredSize();
     g.setFont(font);
     g.setColor(Color.red);
     String temp;
     int [] test = {0,4,2,3,4,5};


    for(int i = 0;  i < test.length; i++)
    {
        temp = Integer.toString(test[i]);
        g.drawString(temp, (50+(i*10)), 50);

    }
}

该代码绘制数组的内容(将其转换为字符串)。我想要做的是更新数组并在更新时重新绘制新数组。我一直在寻找示例,但无法解决这个简单的任务。

4

2 回答 2

2

当您希望组件重绘自身时,您需要调用:

repaint();

在组件上。

您不会在 paintComponent() 方法中定义 Array。相反,您需要添加一个方法,例如

public void setArray(int[] numberArray)
{
    this.numberArray = numberArray;
    repaint();
}

然后你会定义一个类变量“numberArray”。paintComponent() 方法将访问该类变量。

于 2013-03-31T22:08:34.677 回答
0

试试下面的。改变

 int [] test = {0,4,2,3,4,5};

int [] test = getTestData();

然后提供以下内容:

private int [] testData = new int [0];

private getTestData() {
    return this.testData;
}

private setTestData(int [] newData) {
    this.testData = newData;
}

现在要设置不同的测试,请尝试

setTestData((int []){0, 4,2,3,4,5});
repaint();
setTestData((int []){1,2,3,4,5});
repaint();
. . .

类似的东西。

于 2013-03-31T22:15:19.917 回答