小白想问问Windowsbuilder的问题

H柠檬 2018-12-31 10:30:54
首先wsbuilder插件创建的界面大体是这样的:

public class mainframe extends JFrame {

private JPanel contentPane;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {

mainframe frame = new mainframe();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}

});

}

/**
* Create the frame.
*/
public mainframe() {

JButton button = new JButton("\u8FD4\u56DE\u767B\u5F55");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Login newform=new Login();
newform.setVisible(true);
//我想在此处添加dispose方法
}
});
button.setToolTipText("");
button.setFont(new Font("微软雅黑", Font.PLAIN, 17));
button.setBounds(40, 341, 113, 27);
contentPane.add(button);




}
}

首先说说我的理解,下面的public mainframe()是构造函数,里面写具体的控件布局等等。那么现在遇到一个问题就是,我在面板里添加了一个按钮,想实现点击他关闭这个窗口打开一个新的窗口,百度了一项是用dispose()方法。但是在监听函数里写mainframe.dispose()是引用不了mainframe对象的。原因我大概也知道,因为mainframe是在main函数才实例化的。想问问各位大佬们该怎么解决,还是说这个插件就是这样
...全文
190 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
H柠檬 2019-01-04
  • 打赏
  • 举报
回复
引用 2 楼 bcsflilong 的回复:


public void actionPerformed(ActionEvent e) {
                Login newform=new Login();
                newform.setVisible(true);
                            //我想在此处添加dispose方法

                dispose();
            }
这样就可以
原来还能这样,谢谢了
bcsflilong 2019-01-02
  • 打赏
  • 举报
回复
但我建议 换成 setVisible(false); 这样是隐藏 不是销毁
bcsflilong 2019-01-02
  • 打赏
  • 举报
回复


public void actionPerformed(ActionEvent e) {
Login newform=new Login();
newform.setVisible(true);
//我想在此处添加dispose方法

dispose();
}
这样就可以
bcsflilong 2019-01-02
  • 打赏
  • 举报
回复
用this 不就可以了吗

58,452

社区成员

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

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