我有两个名为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];
请帮忙,
感谢。
答案 0 :(得分:3)
虽然我没有看到所有代码就无法确定,但似乎critx|yvalues
不是静态的,所以当你创建CustomPanel
的新实例时,它们会被初始化并包含{ {1}}秒。您也在0
中的actionlistener中初始化CustomPanal
实例。因此,每次使用时都会创建GUI.java
的新实例,除非CustomPanel
不是静态的,否则不会保存任何状态。
答案 1 :(得分:0)
我相信它会发生,因为这些是您指定的值。你多次调用cp.test()。每次发送数组值和值2的值。不幸的是,你没有写你在哪里以及如何启动这些数组。
再次检查2 System.out.println()打印的内容。更改其中一个的格式否则您无法区分2个不同位置的输出。为了获得更好的结果,请使