gpt4 book ai didi

java - CardLayout 添加时出现异常?

转载 作者:行者123 更新时间:2023-12-01 09:47:11 26 4
gpt4 key购买 nike

这是我第一次尝试使用 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com