数组/方法/ Java帮助

时间:2010-11-21 12:04:50

标签: java

我有两个名为GUI.java的.java,另一个名为CustomPanel.java

在GUI.java中按下按钮后,它会执行一些操作:

if (e.getSource() == displayButton)
        {
            //pageviews1 = Integer.parseInt(myText1.getText());
            CustomPanel cp = new CustomPanel();
            Graphics g = loginMainPanel.getGraphics();

            int pos = 0;
            while (pos <= 9)
            {
            if (values[pos] > biggestvalue)
            {
            biggestvalue = values[pos];
            }
            pos = pos + 1;
            }

            cp.test(g, values[0], values2[0], "1", biggestvalue);
            cp.test(g, values[1], values2[1], "2", biggestvalue);
            cp.test(g, values[2], values2[2], "3", biggestvalue);
            cp.test(g, values[3], values2[3], "4", biggestvalue);
            cp.test(g, values[4], values2[4], "5", biggestvalue);
            cp.test(g, values[5], values2[5], "6", biggestvalue);
            cp.test(g, values[6], values2[6], "7", biggestvalue);
            cp.test(g, values[7], values2[7], "8", biggestvalue);
            cp.test(g, values[8], values2[8], "9", biggestvalue);
            cp.test(g, values[9], values2[9], "10", biggestvalue);
            //System.out.println("Added Data: " + values2[count2]);
            //count2++;
            graphlink.setEnabled(true);
        }

除了cp.test,你真的不需要知道什么; (它确实很多,但我已经将它浓缩以适合我的问题)

public void test(Graphics g, int pageviews2, String date2, String extcount5, int maxint)
{
...
critxvalues[0] = calc;
crityvalues[0] = desty;
System.out.println(critxvalues[0] + ":" + crityvalues[0]);
}

然后在GUI.java中按下另一个按钮后会发生其他事情:

    CustomPanel cp = new CustomPanel();
    cp.tooltip(x,y);

这个cp.tooltip很简单:

public void tooltip(int x, int y)
{   
System.out.println(critxvalues[0] + ":" + crityvalues[0]);
}

我希望打印出与之前打印出的数组[0]时相同的值,但它不会打印出0:0的cp.tooltip,而cp.test打印出来(例如)200: 200,为什么是:

critxvalues[0] = calc;
crityvalues[0] = desty;

(在cp.test中)没有保存值?

在customPanel.java的顶部发布了critxvalue / crityvalue ...

int [] critxvalues = new int[100];
    int [] crityvalues = new int[100];

请帮忙,

感谢。

2 个答案:

答案 0 :(得分:3)

虽然我没有看到所有代码就无法确定,但似乎critx|yvalues不是静态的,所以当你创建CustomPanel的新实例时,它们会被初始化并包含{ {1}}秒。您也在0中的actionlistener中初始化CustomPanal实例。因此,每次使用时都会创建GUI.java的新实例,除非CustomPanel不是静态的,否则不会保存任何状态。

答案 1 :(得分:0)

我相信它会发生,因为这些是您指定的值。你多次调用cp.test()。每次发送数组值和值2的值。不幸的是,你没有写你在哪里以及如何启动这些数组。

再次检查2 System.out.println()打印的内容。更改其中一个的格式否则您无法区分2个不同位置的输出。为了获得更好的结果,请使