Java里面的JFrame和Frame类的区别是什么

小编 1007

Java里面的JFrame和Frame类的区别是:1.所在的包不同;2.关闭窗口的方式不同;3.add方法不同。所在的包不同是两者最本质的区别,JFrame是在javax.swing包内,而Frame是Window类的直接子类,在包java.awt中。

1.所在的包不同

JFrame是Frame的子类,在javax.swing包内,不能直接用于添加AWT组件或者Swing组件,否则会抛出异常;而Frame是Window类的直接子类,在包java.awt中,可作为父窗体加载其他Swing组件。

2.关闭窗口的方式不同

JFrame类传递参数使得关闭按钮有效;而Frame类加监听使得关闭按钮有效。

与Frame不同,当用户试图关闭窗口时,JFrame知道如何进行响应。用户关闭窗口时,默认的行为只是简单地隐藏JFrame。要更改默认的行为,可调用方法setDefaultCloseOperation(int)。

3.add方法不同

JFrame有add(子件) 和getContentPane().add(子件);而Frame只用add(子件)增加子件。

JFrame覆盖了Container的addImpl方法,所以JFrame的add 和Frame的add不一样。

延伸阅读

JFrame窗体是做什么的

JFrame窗体是Swing程序中各个组件的载体,JFrame窗体是一个承载Swing组件的容器,它拥有普通窗体应具备的功能。

JFrame在程序中的语法如下:

  • JFrame jframe = new JFrame(“title”);
  • Container container = jframe.getContentPane();

当然,JFrame的构造函数也有无参版本:

  • JFrame jframe = new JFrame();
  • Container container = jframe.getContentPane();

代码中用JFrame对象调用getContentPane()方法获取顶层父类Container的对象container。大家应该会有这样一个概念:Swing组件的窗体通常与组件和容器相关,因此,我们在创建完JFrame对象后,需要调用getContentPane()方法,将窗体转换为容器。然后在容器中利用Container类的add()方法进行添加组件操作。

回复

我来回复
  • 暂无回复内容

注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部