如何在JFrame的子窗口关闭前不能操纵父窗口!!!

时间:2021-11-01 03:03:18
各位高手,我写了一个JFrame的界面(jframe),在里面有一个按钮,点击这个按钮后就会弹出另一个JFrame窗口(jframe1),要怎么样才能在jframe1关闭前不能操纵那个jframe窗口呢??麻烦各位哈,谢谢!!


还有一个问题,我在jframe1上添加了个JTextField和FileDialog,目前当保存完文件后,JTextField上能出现文件的路径,但是当下次在打开这个窗口时,JTextField就显示不了,不知道怎么解决,急急急!!!!!谢谢,以下是jframe的代码

private void jbInit() throws Exception {
    frame1.getContentPane().setBackground(SystemColor.inactiveCaptionText);
    frame1.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    frame1.setResizable(false);
    frame1.setTitle("用户设置");
    jButton1.setBounds(new Rectangle(223, 63, 75, 39));
    jButton1.setBorder(BorderFactory.createRaisedBevelBorder());
    jButton1.addActionListener(this);
    jTextField2.setEditable(false);
    jTextField2.setBounds(new Rectangle(21, 63, 189, 39));
    jTextField1.setBounds(new Rectangle(57, 17, 124, 40));
    jPanel1.setBorder(BorderFactory.createRaisedBevelBorder());
    frame1.getContentPane().add(jPanel1, BorderLayout.CENTER);
    jPanel1.setBackground(new Color(118, 172, 255));
    jPanel1.setLayout(null);
    jTextField1.setBackground(new Color(227, 220, 226));
    jTextField1.setFont(new java.awt.Font("Serif", 0, 20));
    jTextField1.setBorder(BorderFactory.createRaisedBevelBorder());
    jTextField1.setEditable(false);
    jTextField1.setText("日志保存位置");
    jButton1.setBackground(new Color(227, 220, 226));
    jButton1.setFont(new java.awt.Font("Dialog", 0, 20));
    jButton1.setText("浏览");
    jTextField2.setBackground(new Color(227, 220, 226));
    jTextField2.setFont(new java.awt.Font("Serif", 0, 18));    
    jPanel1.add(jTextField2, null);
    jPanel1.add(jTextField1, null);
    jPanel1.add(jButton1, null);
  }

  public void actionPerformed(ActionEvent e) {
     String d = e.getActionCommand();         
     if(d.equals("浏览")){           
         JFrame frame = new JFrame();
         FileDialog savefileDialog = new FileDialog(frame,"保存文件",FileDialog.SAVE);    
         savefileDialog.show();              
         if(savefileDialog.getFile() != null){
              File file=new File(savefileDialog.getFile());
              try {
                file.createNewFile();
              }
              catch (IOException ex) {ex.printStackTrace();} 
              jTextField2.setText(savefileDialog.getDirectory()+savefileDialog.getFile());                       
         }
     }      
  }

7 个解决方案

#1


问题一:请把JFrame的子窗口换成JDialog;

问题二:JFrame关闭exit的时候,它所包含的组件全部销毁,当然不可能保存TextField里的内容,建议将该内容写入文件,初始化JFrame时从文件读出填充进TextField;

#2


换成模式对话框阿

#3


还有一个问题
======================
只能写到文件保存一下了

#4


换成模式对话框

#5


谢谢,给分,顺便在问下,问题2还有没有其他解决办法??

#6


问题1昨天傍晚解决,问题2呢我想到一些,但还没试过,是否可以运行JFrame后把文件保存的路径已经文件名暂时保存到缓冲区,然后在取出来呢?

#7


你第一个问题是怎么解决的啊,具体点!
我也有同样的问题

#1


问题一:请把JFrame的子窗口换成JDialog;

问题二:JFrame关闭exit的时候,它所包含的组件全部销毁,当然不可能保存TextField里的内容,建议将该内容写入文件,初始化JFrame时从文件读出填充进TextField;

#2


换成模式对话框阿

#3


还有一个问题
======================
只能写到文件保存一下了

#4


换成模式对话框

#5


谢谢,给分,顺便在问下,问题2还有没有其他解决办法??

#6


问题1昨天傍晚解决,问题2呢我想到一些,但还没试过,是否可以运行JFrame后把文件保存的路径已经文件名暂时保存到缓冲区,然后在取出来呢?

#7


你第一个问题是怎么解决的啊,具体点!
我也有同样的问题