JOptionPane.showMessageDialog(null,
第一个参数是父容器
如果只在一个主程序中提示一个对话框这个参数用null说得通如果
JFrame jf = new JFrame();
JPanel jp = new JPanel();
JButton jb = new JButton();
而上面的JOptionPane是对这个jb的监听器ActionListener方法中作出的处理(弹出一个对话框),此时我的第一个参数用
jf或者jp或者null从效果上看没有区别,具体有什么影响吗?除了对象不一样
第一个参数是父容器
如果只在一个主程序中提示一个对话框这个参数用null说得通如果
JFrame jf = new JFrame();
JPanel jp = new JPanel();
JButton jb = new JButton();
而上面的JOptionPane是对这个jb的监听器ActionListener方法中作出的处理(弹出一个对话框),此时我的第一个参数用
jf或者jp或者null从效果上看没有区别,具体有什么影响吗?除了对象不一样
JFrame jf = new JFrame();
JPanel jp = new JPanel();
JButton jb = new JButton();
原因是:
如果showMessageDialog的第一个参数是null,Swing会取得默认的Frame,而这个Frame就是应用程序的基础Frame。
同样在 jf ,jp ,jb上使用, 应该使用的Frame也是应用程序的基础Frame。
但是如果在JDialog上使用就不一样了,就会以JDialog为父窗口,而不是应用程序的基础Frame。
在下面三个组件上调用showMessageDialog看不出来什么区别。
JFrame jf = new JFrame();
JPanel jp = new JPanel();
JButton jb = new JButton();
原因是:
如果showMessageDialog的第一个参数是null,Swing会取得默认的Frame,而这个Frame就是应用程序的基础Frame。
如果showMessageDialog传入的是组件,Swing就以该组件所在的Frame为基础,在该Frame上弹出MessageDialog。
在 jf ,jp ,jb上使用, 应该使用的Frame也是应用程序的基础Frame。
但是如果在JDialog上使用就不一样了,就会以JDialog为父窗口,而不是应用程序的基础Frame。