当前位置: 首页 > 知识库问答 >
问题:

NullPointerException继续

龚睿
2023-03-14

当我试图在从Panel1类的下一个JButton触发action事件时调用panel2类的JPanel2时,我得到了NullPointerException。对此如何化解?plzz帮助。

public class PanelEventTest
{

/**
 * @param args
 */
JFrame frame;

void originalFrame()
{
    frame = new JFrame();
    frame.setSize(500, 300);
    frame.setVisible(true);
    frame.setLayout(new FlowLayout());
    frame.add(new TestPanel1().panel1());
    frame.add(new TestPanel2().panel2());
}

public static void main(String[] args) {
    // TODO Auto-generated method stub
    new PanelEventTest().originalFrame();
}
}

public class TestPanel1
{
JPanel panel1;
JButton next;

JPanel panel1()
{
    panel1 = new JPanel();
    next = new JButton("Next");
    next.addActionListener(new ActionListener()
    {
        public void actionPerformed(ActionEvent e) 
        {
            // TODO Auto-generated method stub
            new TestPanel2().panel2.removeAll();
        }
    });
    panel1.add(next);
    return panel1;
}
}
public class TestPanel2
{
JPanel panel2;
JList jlist;
String[] list = {"Sachin","Tarun","Vipin"};
JPanel panel2()
{
    panel2 = new JPanel();
    jlist = new JList(list);
    panel2.add(jlist);
    panel2.add(new JLabel("Test"));
    return panel2;
}
}

我的最后一个问题JPanel的Nullpointerexception已经被你们成功解决了。请在这方面提供帮助。这个例外正在吞噬我的脑袋。

共有1个答案

汪德明
2023-03-14

如果尝试更改此行:

new TestPanel2().panel2.removeAll();

致:

new TestPanel2().panel2().removeAll();

会解决问题,但目前的逻辑是有缺陷的。

public class TestPanel2 {
    JPanel panel2;
    JList jlist;
    String[] list = { "Sachin", "Tarun", "Vipin" };

    public TestPanel2() { // was: JPanel panel2() {
        panel2 = new JPanel();
        jlist = new JList(list);
        panel2.add(jlist);
        panel2.add(new JLabel("Test"));
                      // was: return panel2;
    }
}
public class TestPanel1 {
    JPanel panel1;
    JButton next;

    public TestPanel1(final JFrame frame, TestPanel2 tp2) { // was: JPanel panel1() {
        panel1 = new JPanel();
        next = new JButton("Next");
        final JPanel panel2 = tp2.panel2; // line created
        next.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
                panel2.removeAll(); // was: new TestPanel2().panel2.removeAll();
                frame.validate(); // line created
                frame.paint(); // line created
            }
        });
        panel1.add(next);
                         // was: return panel1;
    }
}
frame.add(new TestPanel1().panel1());
frame.add(new TestPanel2().panel2());
TestPanel2 tp2 = new TestPanel2();
frame.add(new TestPanel1(frame, tp2).panel1);
frame.add(tp2.panel2);
frame.validate();
frame.repaint();

此外,您需要将TestPanel2传递给TestPanel1:

  • 您的代码正在创建一个新的TestPanel2(不附加到任何人),然后在它的面板上调用RemoveAll()。这一点都没有效果(因为此面板没有显示在任何地方)。
  • 更改后的代码将在TestPanel1的面板上调用RemoveAll()
  • 而且,每次对组件进行更改时,都需要重新验证/重新绘制组件。
    • 当前,您可以在创建框架添加面板)和删除面板2(在“下一步”按钮的操作中)时更改它们。

 类似资料:
  • 问题内容: 我尝试查看有关此问题的帖子,但是我的代码在此错误上仍然遇到一些麻烦。因此,在第四行中,我创建了一个实例变量,称为访问该类。但是,当我坐下来行,下,我得到一个显示java.lang.NullPointerException:零误差。 接口类: SongDatabase类: 我已经调试了整个调试器,并且知道实例变量SongDatabase = null,这可能是导致错误的原因吗?我以前有一

  • 问题内容: 我在crashlytics上收到此错误日志。我不知道是什么原因导致了崩溃。它发生在Android 4.x,5.x,6.x设备上。(三星,索尼,LGE等) 问题答案: 确保onCreateInputConnection重写方法中的输入连接不为null。 其中MyInputConnectionWrapper是自InputConnectionWrapper扩展的自定义输入连接包装器。

  • 主要内容:Java14 NullPointerException的示例Java 14 引入了 NullPointerException 和有用的信息,以防 -XX:+ShowCodeDetailsInExceptionMessages 标志被传递给 JVM。 Java14 NullPointerException的示例 ApiTester.java 旧方法:编译并运行程序 输出结果为 新方式:用新标志编译和运行程序 输出结果为  

  • 问题内容: 您好第一次在这里,但这里去: 我有一个JavaFX应用程序,它可以动态更改FXML UI标签,并且数据是从Player类中提取的。 有问题的两个类是和。 播放器类存储播放器详细信息,我想将这些详细信息传递给在标签上设置文本的Interface类。 作为测试,我的FXML UI仅具有一个按钮和两个标签。 如果单击按钮,它将调用设置为“ Town” 的方法。 但是,如果我在Player类中

  • 我听从了@Hoaz的建议。但是,我得到了nullpointer异常 我还注意到DAO是null,所以我这样做了(只是为了提一下,我做了下面的步骤来尝试,我知道springUnit和Mockito或xyz之间的区别): 如何使用Mockito模拟外部方法调用 如何使用Mockito在模拟对象上设置属性?

  • 我试图从我的机器上的mySQL数据库中获取数据。当我在模拟器上运行应用程序时,我得到一个< code > HttpHostConnectException (我已经在浏览器中测试了我的地址,并尝试了使用和不使用端口号的10.0.2.2),然后应用程序崩溃,出现< code > NullPointerException 。我能做些什么来解决这些问题? 连接器.java 主要活动.java 来自日志猫