带有公共数组的指针
Posted
技术标签:
【中文标题】带有公共数组的指针【英文标题】:Pointer with public array 【发布时间】:2012-11-23 00:05:51 【问题描述】:事情就是这样——我的 Main 方法只调用 InitGui。在整个类中(基本上是整个文件,我有 InitGui 方法和一些公共静态 gui 对象。其中一个对象实际上是一个数组
public static JButton Keys[] = null;
我有一个名为 placeKeys 的方法,它获取每个 JButton“键”的位置并将其放置在面板上。当我不使用此方法时,整个代码都可以工作,基本上而不是 for i=0 到任何东西,我只想调用 placeKey(arguments here...) 而不是 每个 jButton 都像这样放置
for i=0 to whatever
Keys[i] = new JButton(jBStringArray[i]);
Keys[i].setLocation(2 + i*kSize,2+row*50);
Keys[i].setSize(50, kSize);
keyboardPane.add(Keys[i]);
我把方法写下来了,但是当它尝试访问 Keys[] 时,它在 placeKeys 报告指针错误,这意味着方法的第一行
希望你能理解我
【问题讨论】:
那么真正的代码是什么?不幸的是,循环不正确,所以我不能说这是否是问题所在。另外,请务必明确说明您的异常是什么 - 很可能是NullPointerException
,但我不能 100% 确定。
是的 - 它是 NullPointerException
循环被称为多个不同的参数,有时甚至没有被调用,但只有这 4 行被调用为 1 个值,但我想要一个方法来完成这 4 行......
【参考方案1】:
在你的 for 循环之前(或者当你声明它时,或者,如果你依赖 null 检查,就在 for 循环之前)你需要使用 Keys = new JButton[whatever+1];
创建数组。哦,请以小写字母开头变量名 - 这是普遍接受的做法。
【讨论】:
【参考方案2】://assuming jBStringArray is already defined here
public static JButton Keys[] = new JButton[jBStringArray.length];
【讨论】:
以上是关于带有公共数组的指针的主要内容,如果未能解决你的问题,请参考以下文章