java swing 菜单打开与关闭子窗口
1、我有一个含有菜单栏的主窗口。从菜单下拉链中打开修改密码窗口if(menubar==menu4_1){//修改密码newPasswordRework();}同时怎么锁定...
1、我有一个含有菜单栏的主窗口。从菜单下拉链中打开修改密码窗口
if(menubar == menu4_1){//修改密码
new PasswordRework();
}
同时怎么锁定主窗口不可操作。在关闭子窗口时又怎么解锁主窗口。
注意:子窗口和主窗口在两个类中。
2、当我点击主窗口的红色叉关闭时,怎么把所有子窗口同时关掉?
3、从菜单中打开一个新的子窗口时,怎么关闭前面打开的子窗口? 展开
if(menubar == menu4_1){//修改密码
new PasswordRework();
}
同时怎么锁定主窗口不可操作。在关闭子窗口时又怎么解锁主窗口。
注意:子窗口和主窗口在两个类中。
2、当我点击主窗口的红色叉关闭时,怎么把所有子窗口同时关掉?
3、从菜单中打开一个新的子窗口时,怎么关闭前面打开的子窗口? 展开
2个回答
展开全部
如果实现了你第一个问题,后面的就都不存在了。
锁住了主窗体,那么关闭操作,菜单点击都不可能操作了。
下边按问题一个一个解答,这是不考虑关联性的,如果考虑关联性。后两个不可能与1同时存在。
1. 这个使用Dialog而不是Frame Dialog有model属性,setModel(true); 这样就是模态对话框,后面的都不可以操作了。
2.窗体关闭时,使用System.exit(0); 这样,所有的就都关闭了。
3.打开一个新的,关闭已打开的,需要有前一个窗体的对象句柄。用可以设置成非显示。
锁住了主窗体,那么关闭操作,菜单点击都不可能操作了。
下边按问题一个一个解答,这是不考虑关联性的,如果考虑关联性。后两个不可能与1同时存在。
1. 这个使用Dialog而不是Frame Dialog有model属性,setModel(true); 这样就是模态对话框,后面的都不可以操作了。
2.窗体关闭时,使用System.exit(0); 这样,所有的就都关闭了。
3.打开一个新的,关闭已打开的,需要有前一个窗体的对象句柄。用可以设置成非显示。
展开全部
看看下面实例代码。有问题追问或hi
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MyFrame extends JFrame implements ActionListener{
public MyFrame(){
setTitle("主窗体");
setVisible(true);
setBounds(300, 100, 300, 300);
setDefaultCloseOperation(EXIT_ON_CLOSE);//关闭窗体退出虚拟机,即其它窗体也关闭 问题:2.其它窗体中不要这一句。否则关闭子窗体主窗体也关闭了
JPanel jp=new JPanel();
JButton jButton=new JButton("打开新窗体");
jButton.addActionListener(this);
jp.add(jButton);
add(jp,BorderLayout.SOUTH);
}
public static void main(String[]args){
new MyFrame();
}
@Override
public void actionPerformed(ActionEvent e) {
//打开此窗体,假如前面的子窗体名 jt1那么jf1.dispose();关闭 问题:3
JFrame jf=new JFrame("子窗体");
this.setEnabled(false);//设置主窗体不可用,true恢复可用 问题:1。当jf关闭时,主窗体setEnabled(true);//
jf.setVisible(true);
jf.setBounds(400, 200, 100, 100);
jf.addWindowListener(new Mywin(this));
}
}
class Mywin implements WindowListener{
private MyFrame myFrame;
public Mywin(MyFrame myFrame){
this.myFrame=myFrame;
}
@Override
public void windowActivated(WindowEvent e) {}
@Override
public void windowClosed(WindowEvent e) {}
@Override
public void windowClosing(WindowEvent e) {
myFrame.setEnabled(true);
}
@Override
public void windowDeactivated(WindowEvent e) {}
@Override
public void windowDeiconified(WindowEvent e) {}
@Override
public void windowIconified(WindowEvent e) {}
@Override
public void windowOpened(WindowEvent e){}
}
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MyFrame extends JFrame implements ActionListener{
public MyFrame(){
setTitle("主窗体");
setVisible(true);
setBounds(300, 100, 300, 300);
setDefaultCloseOperation(EXIT_ON_CLOSE);//关闭窗体退出虚拟机,即其它窗体也关闭 问题:2.其它窗体中不要这一句。否则关闭子窗体主窗体也关闭了
JPanel jp=new JPanel();
JButton jButton=new JButton("打开新窗体");
jButton.addActionListener(this);
jp.add(jButton);
add(jp,BorderLayout.SOUTH);
}
public static void main(String[]args){
new MyFrame();
}
@Override
public void actionPerformed(ActionEvent e) {
//打开此窗体,假如前面的子窗体名 jt1那么jf1.dispose();关闭 问题:3
JFrame jf=new JFrame("子窗体");
this.setEnabled(false);//设置主窗体不可用,true恢复可用 问题:1。当jf关闭时,主窗体setEnabled(true);//
jf.setVisible(true);
jf.setBounds(400, 200, 100, 100);
jf.addWindowListener(new Mywin(this));
}
}
class Mywin implements WindowListener{
private MyFrame myFrame;
public Mywin(MyFrame myFrame){
this.myFrame=myFrame;
}
@Override
public void windowActivated(WindowEvent e) {}
@Override
public void windowClosed(WindowEvent e) {}
@Override
public void windowClosing(WindowEvent e) {
myFrame.setEnabled(true);
}
@Override
public void windowDeactivated(WindowEvent e) {}
@Override
public void windowDeiconified(WindowEvent e) {}
@Override
public void windowIconified(WindowEvent e) {}
@Override
public void windowOpened(WindowEvent e){}
}
追问
去百度的HI网页版聊
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询