2个java文件,
一个主窗口(MainWindow.java);
一个子窗口(JRpassword.java)。点击主窗口的一个按钮后弹出子窗口。怎末实现这个  子窗口   为模态窗口呢?(焦点问题吗?)下面是主窗口的一段代码,
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals("reworkpassword")){
JRpassword newf = new JRpassword();
newf.JRpassword();
}
下面是子窗口代码(修改密码的)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class JRpassword implements ActionListener{
    
    JFrame jf = new JFrame("修改密码");
    
    Container cont = jf.getContentPane();
public String string1=new String();
    public JTextField userid;
public JPasswordField oldpassword;
public JPasswordField newpassword;
public JPasswordField surenewpassword;
    public JButton jb2,jb3; 
    void loginButton(){
     userid=new JTextField();
     userid.setBounds(90,20,170,25);
     cont.add(userid);
    
     oldpassword =new JPasswordField();
     oldpassword.setBounds(90,60,170,25);
     cont.add(oldpassword);
    
     newpassword =new JPasswordField();
     newpassword.setBounds(90,100,170,25);
     cont.add(newpassword);
    
     surenewpassword =new JPasswordField();
     surenewpassword.setBounds(90,140,170,25);
     cont.add(surenewpassword);
    
jb2=new JButton("取消");
jb2.setActionCommand("exit");//取消命令
jb2.addActionListener(this);
jb2.setBounds(190,170,80,30);
cont.add(jb2);

jb3=new JButton("确定");
jb3.setActionCommand("sure");//确定命令
jb3.addActionListener(this);
jb3.setBounds(60,170,80,30);
cont.add(jb3);
jb3.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae){
string1=userid.getText()+"0"+oldpassword.getText();
String name =userid.getText();
String password2 =newpassword.getText();
String password1 =oldpassword.getText();
if(string1.equals("0")){
JOptionPane.showMessageDialog(null,"用户名或原密码不能为空!","警告",JOptionPane.INFORMATION_MESSAGE);
}else if(!newpassword.getText().equals(surenewpassword.getText())){
            JOptionPane.showMessageDialog(null,"确认新密码错误!","警告",JOptionPane.INFORMATION_MESSAGE);
}else{
jf.dispose();
new Updatepassword(name,password2,password1);
}}
}
);

    }
        
    void loginLabel(){
   
    JLabel la1=new JLabel("账号");
    la1.setBounds(45,20,45,25);
    cont.add(la1);
            JLabel la2=new JLabel("原密码");
    la2.setBounds(45,60,45,25);
    cont.add(la2);  
   
    JLabel la3=new JLabel("新密码");
    la3.setBounds(45,100,45,25);
    cont.add(la3);  
   
    JLabel la4=new JLabel("确认密码");
    la4.setBounds(35,140,55,25);
    cont.add(la4);
    
    JLabel la5=new JLabel("");
    cont.add(la5);

     void loginFrame(){
     jf.setTitle("修改密码");
Toolkit kit = Toolkit.getDefaultToolkit();//获取Toolkit对象
Dimension screenSize = kit.getScreenSize();
int width = screenSize.width;
int height = screenSize.height;
int x = (width - 330) / 2;
int y = (height - 240) / 2;    
jf.setBounds(x,y,330,240);     jf.setVisible(true);
jf.setResizable(false);
}
void loginshowmodal(){
jf.Showmodal;
}
    
void showJRpassword(){
    loginshowmodal();
    loginButton();
    loginLabel();
    loginFrame();
    }


public void actionPerformed(ActionEvent ae){
if(ae.getActionCommand().equals("exit")){
    jf.dispose();
    
}
}
 void JRpassword () {
JRpassword LG =new JRpassword();
LG.showJRpassword();
}   }