Java Swing 怎么关闭弹出的窗口

DukeSaika 2017-12-24 05:04:39
有两个窗口MainForm和SecondForm,然后在MainForm中点一个按钮弹出SecondForm,在弹出的窗口中按一个按钮关闭这个窗口。
副窗口部分
public SecondForm(){
JFrame frm=new JFrame("Information");
frm.setVisible(true);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//frm.getContentPane(topPanel);
button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
frm.dispose();
}
});
}
public JPanel getTopPanel() {
return topPanel;
}
}
主窗口部分
public MainForm( DefaultListModel l) {
this.listModel=l;
button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//JFrame frame=new JFrame("Information");
SecondForm newForm=new SecondForm();
SecondForm.frm.setContentPane(newForm.getTopPanel());
}
});
quitButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
frame.dispose();
}
});
}
}
在运行的时候在SecondForm.frm.setContentPane(newForm.getTopPanel());这一句
出现了java.lang.NullPointerException,想请教大神哪里出了问题?
...全文
643 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
SecondForm.frm.setContentPane(newForm.getTopPanel());为什么要执行这一步?topPanel这个值是什么?做什么用?什么时候赋过值/?
随着计算机与软件的进步,人机交互越来越需要发展,计算机和用户之间的 接口也越来越具有方便用户的特性,从而制作用户界面系统也越来越复杂和花费 人力,时间。因此为了节省程序设计者的时间,有必要研究界面模板技术。 Java是一种灵活的、跨平台的、彻底地面向对象的程序设计语言。由于Java 具有众多特点是跨平台的优点,采用java编写应用程序界面和web界面越来越流 行。而swing是目前Java中的一个重要的界面工具组类库,是建立GUI的强大工 具,它比起Java的其他界面组件来说具有更多的优点,相信以后用java swing佑U作 的界面的软件和web页面会越来越多,所以研究和设hLjava swing的界面模板有着 非常重要的意义。 本文首先引入和介绍两种设计模式,flpMVC模式和主控模式,并且详细描 述和举例说明]"swing类库与MVC模式之间的关联。然后本文结合国内外现有的 交互式用户界面模型的特点,提出了一种基于javaswing和两种设计模式的交互 式界面的设计思想与具体实现方案。该方案包含用户界面代理,能提供给用户图 形的可视化方式来设计界面的视图,和控制器的设计;这套方案包括了几乎所有 的基本控件,例如对话框,滚动条,分割栏,文本框等的界面生成器;然后以此 方案做了一个示例程序,即利用swing类库和基于前面介绍的设计模式,以按钮 为例创建了一个界面生成器,该按钮生成器能按照用户输入的属性生成具有该属 性的swingYXL格的按钮,并且生成相应的java代码,用户也可以通过代码来改变这 个按钮。也就是说它具有中间件的功能,能将界面内容保存在模板实例中以便修 改及重用,并能根据模板实例生成界面程序源代码。接着讲述了其他swing控件 如编辑框,滚动条,弹出菜单等的做法,由此形成了一个开发swing风格界面的 集成界面模板工具。最后,文章结尾总结了提出和研究设计的这套方案在意义和不足,以及进一步的工作。

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧