首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数组TextField

数组TextField
EN

Stack Overflow用户
提问于 2012-08-08 02:18:30
回答 2查看 17.7K关注 0票数 0

Na是一个参数。我确信这个参数是正确的。我声明了一个Na JTextField数组,我想使用其中的一个。但是当我运行我的代码时,有一个例外...

这是我的代码:

代码语言:javascript
复制
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

class Panneau_fenetre1A extends JPanel                      
{   
    public Panneau_fenetre1A(int Na)
    {
        JTextField[] allField = new JTextField [Na];
        for(int i = 0;i<Na;i++)
        {
            allField[i].setText(String.valueOf(0));
            allField[i].setBounds(150, 350+i*25,20, 20);
        }
    }

}

这是个例外:

代码语言:javascript
复制
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at Panneau_fenetre1A.<init>(Panneau_fenetre1A.java:18)
    at Cadre_fenetre1A.<init>(Cadre_fenetre1A.java:13)
    at Panneau_fenetre$ecout1.actionPerformed(Panneau_fenetre.java:64)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6268)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    at java.awt.Component.processEvent(Component.java:6033)
    at java.awt.Container.processEvent(Container.java:2045)
    at java.awt.Component.dispatchEventImpl(Component.java:4629)
    at java.awt.Container.dispatchEventImpl(Container.java:2103)
    at java.awt.Component.dispatchEvent(Component.java:4455)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4633)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4297)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4227)
    at java.awt.Container.dispatchEventImpl(Container.java:2089)
    at java.awt.Window.dispatchEventImpl(Window.java:2517)
    at java.awt.Component.dispatchEvent(Component.java:4455)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:649)
    at java.awt.EventQueue.access$000(EventQueue.java:96)
    at java.awt.EventQueue$1.run(EventQueue.java:608)
    at java.awt.EventQueue$1.run(EventQueue.java:606)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116)
    at java.awt.EventQueue$2.run(EventQueue.java:622)
    at java.awt.EventQueue$2.run(EventQueue.java:620)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:619)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-08 02:26:04

这行..。

代码语言:javascript
复制
JTextField[] allField = new JTextField [Na];

初始化一个新数组,它将保存JTextField对象。数组中有-Na-空格,但每个空格仍然是空的。您仍然需要创建JTextField对象来进入空数组空间。

像这样的东西应该行得通。

代码语言:javascript
复制
for(int i = 0;i < Na;i++)
{
    allField[i] = new JTextField(String.valueOf(0));
    allField[i].setBounds(150, 350 + i * 25, 20, 20);

}
票数 0
EN

Stack Overflow用户

发布于 2012-08-08 02:21:12

您未能正确初始化数组。因此,所有i < NaallField[i] = null。因此才有了NullPointerException。以下方法将会起作用,

代码语言:javascript
复制
for(int i = 0;i < Na;i++)
{
    JTextField textField = new JTextField(String.valueOf(0));
    textField.setBounds(150, 350 + i * 25, 20, 20);
    allField[i] = textField;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11851772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档