java程序点击弹出窗口

2025-04-16 07:50:49
推荐回答(2个)
回答1:

帮你改了一下,主要是将Frame12 窗体弹出来后,将Frame11 窗体设置setEnabled(false);向Frame12窗体添加一个窗口监听事件,当其关闭时将Frame11窗体设置setEnabled(true);
Frame11的对象通过Frame12类的构造方法来传递。
import java.awt.event.*;
import javax.swing.*;
public class Frame11 extends JFrame implements ActionListener{
private JMenuBar jmb;
private JPanel pan;
private JTextField t1;
private JButton button1;
private JLabel lab1;
Frame12 frame12;
Frame11(){
super("信息修改");
this.setBounds(250, 100, 750,500);
pan=new JPanel();
lab1=new JLabel("请输入班级:");
t1=new JTextField(16);
button1=new JButton("查询");
button1.addActionListener((ActionListener) this);
jmb = new JMenuBar();
JMenu jm1 = new JMenu("修改信息");
pan.setLayout(null);

lab1.setBounds(10,10,70,25);
t1.setBounds(85,10,200,25);
button1.setBounds(320,10,60,25);

jmb.add(jm1);
pan.add(button1);
pan.add(lab1);
pan.add(t1);

this.setResizable(false); //窗口大小锁定,设置后,无法通过鼠标拖动,调整大小。
//如果锁定了窗口,那么最大化窗口的按钮将被自动禁用
validate(); this.setContentPane(pan);
this.setVisible(true);
setJMenuBar(jmb);
}

public void actionPerformed(ActionEvent e) {
if(e.getSource()==button1){
frame12=new Frame12(this);
this.setFocusable(false);
setEnabled(false);
}
}
public static void main(String[] args) {
new Frame11();
}
}

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.*;
public class Frame12 extends JFrame{
/**
*
*/
private static final long serialVersionUID = -3490142483418228449L;
private JMenuBar jmb;
private JPanel pan;
private JButton button1;
private JLabel lab1;
private JPasswordField tfPass;
Frame12(final Frame11 frame11){
super("修改密码");
this.setBounds(550, 250, 290,150);
pan=new JPanel();
lab1=new JLabel("请重新输入密码:");
tfPass = new JPasswordField(20);
button1=new JButton("确认");

jmb = new JMenuBar();
JMenu jm1 = new JMenu("用户密码修改");
pan.setLayout(null);

lab1.setBounds(10,10,100,25);
tfPass.setBounds(110,10,150,25);
button1.setBounds(200,45,60,25);

jmb.add(jm1);
pan.add(button1);
pan.add(lab1);
pan.add(tfPass);

setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
frame11.setEnabled(true);
}
});
this.setResizable(false); //窗口大小锁定,设置后,无法通过鼠标拖动,调整大小。
//如果锁定了窗口,那么最大化窗口的按钮将被自动禁用
validate();
this.setContentPane(pan);
this.setVisible(true);
setJMenuBar(jmb);
}
}

回答2:

教你一个简单的方法。
当你第二个弹出来的时候你直接吧第一个设置成隐藏不可见的。
当你第二个关掉的时候你再把它设置成可见的就好啦