java - CardLayout 添加时出现异常?

标签 java cardlayout

这是我第一次尝试使用 Cardlayout 运行代码。 这是 add 方法的异常(空指针)。 不过,我也尝试弄清楚如何设计卡片布局,例如卡片并排或一张在下。我更喜欢后者。 我已经尝试更改我的代码并阅读有关类似问题的其他主题。如有任何误解,敬请谅解。

谢谢

 包 jnotizen;

     导入 java.awt.BorderLayout;
     导入 java.awt.CardLayout;
     导入 java.awt.event.ItemEvent;
     导入 java.awt.event.ItemListener;
     导入java.awt.image.BufferedImage;
     导入java.io.IOException;
     导入 java.io.InputStream;
     导入 javax.imageio.ImageIO;
     导入 javax.swing.*;
     导入 javax.swing.SwingUtilities;
     导入 javax.swing.UIManager;

    /**
     *
     *
     */
     公共(public)类 JNotizen {

    /**
    * @param args 命令行参数
    */
    JFrame f;
    边框布局 bl;
    J面板p;
    JPanel启动;
    JPanel 通知;
    卡片布局c;
    JTextArea ta;
    JButton nn;
    JButton sv;
    JButton sn;
    字符串控件=“控件”;
    String noticeBoard = "公告板";

    公共(public)静态无效主(字符串[] args){
   //TODO 代码应用逻辑在这里
     SwingUtilities.invokeLater(new Runnable() {
    公共(public)无效运行(){
   //关闭金属对粗体字体的使用
     UIManager.put("swing.boldMetal", Boolean.FALSE);
     新的 JNotizen().startApp();
    }
   });

}

私有(private)无效startApp(){

 c = new CardLayout();
 p = 新的 JPanel(c);

 nn = new JButton("新通知");
 sv = new JButton("保存通知");
 sn = new JButton("搜索通知");
 ta = new JTextArea("");

 开始.add(nn);//这里我得到了NullpointerException?
 开始.add(sv);
 开始.添加(sn);

 通知.add(ta);

 p.add(开始, 控制);
 p.add(通知,noticeBoard);

 CardLayout cl = (CardLayout)(p.getLayout());
 cl.first(p);

 BufferedImage img = null;
 尝试 {
  InputStream inStream = this.getClass().getClassLoader().getResourceAsStream("iconHash2.jpg");
  img = ImageIO.read(inStream);
 } catch (IOException e) {}
 f = 新的 JFrame();
 f.getContentPane().add(p, BorderLayout.CENTER);
 f.setTitle("公告板");
 f.setIconImage(img);
 f.setSize(450,550);
 f.setResizing(假);
 f.setVisible(true);
 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

 }
}

最佳答案

JPanel start 从未初始化。因此它在起始变量上调用空指针。在添加组件之前尝试初始化 JPanel start

关于java - CardLayout 添加时出现异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37895272/

相关文章:

Java:执行 HTTP REST GET 调用而不读取响应

java - 简单的camel ftp路由超时

java - CardLayout,在 JFrame 或 JPanel 中?

java - Applet 中的 CardLayout 未显示

java.lang.IllegalArgumentException : cannot add to layout: constraint must be a string 异常

java - 使对象化抑制内存缓存异常

java - 代码厨师 : Time Limit Exceeded by the following java code

java - Spark 中 HashMap 的 Kryo 反序列化失败

java - 如何在 Java CardLayout 中的卡片之间传递数据

java - 为什么我的代码不适用于 CardLayout?不管我做什么,它只是显示一个空白的 JFrame