毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> java技术 >> 正文

JDialog的构造方法中的owner是什么意思

更新时间:2013-1-16:  来源:毕业论文

JDialog的构造方法中的owner是什么意思
import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;   import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel;   public class AboutDialog extends JDialog{     static JFrame jf=new JFrame();     /**      * @param args      */    static JFrame tf=new JFrame();     public static void main(String[] args) {         // TODO Auto-generated method stub                         new AboutDialog(jf);     }     public AboutDialog(JFrame owner){                   super(owner,"关于记事本",true);         tf.setVisible(true);         tf.setLocation(600, 600);         tf.setSize(100,100);                   JMenuBar jb=new JMenuBar();         JMenu jm=new JMenu("FIle");         JMenuItem ji=new JMenuItem("About");         jb.add(jm);         jm.add(ji);         jf.setJMenuBar(jb);         ji.addActionListener(new ActionListener() {                           @Override            public void actionPerformed(ActionEvent e) {                 // TODO Auto-generated method stub                 setVisible(true);             }         });         jf.setVisible(true);         jf.setSize(300,300);                   add(new JLabel("<html><h1>Window7 旗舰版</i></h1><hr><p>Microsoft Windows</p><p>....</p></html>"),BorderLayout.CENTER);                   JPanel panel=new JPanel();         JButton ok=new JButton("Ok");         ok.addActionListener(new ActionListener() {                           @Override            public void actionPerformed(ActionEvent e) {                 // TODO Auto-generated method stub                 setVisible(false);             }         });         panel.add(ok);         add(panel,BorderLayout.SOUTH);                   setSize(250,150);     }   }

这里super(owner,"关于记事本",true);我吧owner改成tf并没有看出什么变化,看了一会API文档后还是一头雾水

首先, 就你这段程序而言, 由于你的tf和jf都是一个new出来的jframe,当然是没变化的,但是你将own改成tf后用到其他的地方, 这里就失去了传入参数的意义。
其次给你解释一下owner,不就是一个参数吗, 在实际应用中,我们通常在一个窗口点击某个组件新建一个窗口,但是新建的窗口要用到老窗口的一些都东西。
再次,这种传入参数在swing中体现了一种层次关系, 当新窗口存在的时候, 就窗口,也就是OWNER是不能被操作的,这就防止了同时执行一个窗口的多个动作

super(owner,"关于记事本",false);   
这里把true改为false

然后,执行程序,在打开dialog框的状态下,分别关闭jf和tf,看dialog框是随着谁的关闭而关闭的.
然后,把owner改成tf,再按上面的方式执行下,看这次dialog框是随着谁的关闭而关闭的.
如此可以看出来区别.

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。