jframe和frame的区别(Java JFrame 和 Frame 的区别)
本文目录
- Java JFrame 和 Frame 的区别
- JFrame和JPanel及Panel异同
- 为什么java语言中JFrame设置了背景色却看不见,而在Frame却可以看见
- 初学者 请问java是用frame还是Jframe好呢 好纠结 输入都是框架 但有些方法不同 求解
- JInternalFrame和JFrame有什么区别吗
- 在java中面板和框架什么区别
- Java中JInternalFrame与JFrame的区别
- 谁android应用程序的四大组件之一,它负责管理android应用程序的用户界面
- JFrame 直接add(button) 和 getContentPane().add(button)有什么区别没
Java JFrame 和 Frame 的区别
JFrame是javax.Swing包里的,Frame是java.awt包里的。Swing的组件的优点是比awt美观,而且可以设置样式。其他也没什么。提醒你一下,两者有轻微的不兼容。
JFrame和JPanel及Panel异同
Panel is the ******st container class. A panel provides space in which an ap
plication can attach any other component, including other panels.
《详见java.awt.Panel》
《注意:以下大写指类,小写泛指对象,比如Frame指Frame类,frame泛指Frame对象。》
好象是看出区别了:Frame是Window的子类,一个Frame对象就是一个有标题有边界
的顶层窗口。Panel是最简单的容器类,是Container的子类。一个Panel对象就是要给应
用程序提供空间,用来添加组件,包括其它的Panel对象。
追本溯源,其实Frame和Panel还是有些亲戚关系的:Frame是Window的直接子类,W
indow又是Container的直接子类,而Panel是Container的直接子类,它们都是从Contai
ner里扩展出来的,是叔侄关系。它们的老祖宗是Component(Container是Component的
子类),Component是基类,回溯本源到此为止,已经是根了。
Frame和Panel都是容器类,那么它们在使用上有什么区别呢?
你可以创建一个panel对象,在上面添加组件,比如单独建立一个TestPanel.java
的源文件(TestPanel extends Panel)。但是因为Panel不是顶层容器,所以你不能直
接显示你创建的这个panel对象,必须装在顶层容器里比如嵌入一个frame里,才能显示
。(为什么Frame对象可以直接显示,而Panel对象不能,文章最后有解释。)
Frame是顶层容器,一般不单独使用(注意只是一般,还是可以直接嵌入组件的),而是
习惯在frame里嵌入panel,再在panel上面添加组件。你在用Jbuilder创建一个Applica
tion(比如TestApp和TestAppFrame)的时候,在你的框架文件TestAppFrame里就会自动
生成一个叫contentPane的JPanel对象。
Panel是一般容器,可以自身嵌套(比如在panel1里嵌入panel2);但Frame已经是
顶层容器了,自身不能嵌套。
我们用得最多的JFrame和JPanel,就是Frame和Panel在Swing下的扩展(JFrame是Fr
ame子类和JPanel是Panel的子类)。
我们用Jbuilder创建Application时会自动生成一些代码,其中的frame.pack()一句
是什么意思?《注:frame是一个已生成的框架类对象》
我们在java.awt.Frame的源文件里找不到pack()方法的定义。看了java.awt.Window
才知
道,原来在Window类里定义了pack()和show()两个显示窗口的方法,被Frame继承了过来
。这可能也是panel无法单独使用的一个原因吧,Pa
为什么java语言中JFrame设置了背景色却看不见,而在Frame却可以看见
JFrame默认采用了FlowLayout布局管理器,你的组件在该布局管理器中被塞满整个frame,挡住了背景。就是说,实际上JFrame还是有背景的
一般用JFrame的时候要初始化一个JPanel,把组件放在JPanel里,然后把JPanel放到JFrame里,这样可以较好的控制组建位置等其他的东西。在这种方式下直接给JPanel设置setBackground就可以一直看到背景了
初学者 请问java是用frame还是Jframe好呢 好纠结 输入都是框架 但有些方法不同 求解
Jframe 继续frame 的 ,从功能角度来看,肯定是子类 》=父类的,有些方法不同,你coding测试下就OK了
JInternalFrame和JFrame有什么区别吗
JinternalFrame的使用跟JFrame几乎一样,可以最大化、最小化、关闭窗口、加入菜单等功能;唯一不同的是JinternalFrame是lightweight component ,也就是说JInternalFrame不能单独出现,必须依附在最上层组件上。由于这个特色,JInternalFrame能够利用java提供的Look and Feel功能作出完全不同于原有操作系统所提供的窗口外型,也比JFrame更具有弹性
***隐藏网址***
在java中面板和框架什么区别
认识java中的面板
1.java中的面板关系和种类如下:
2.java中的框架(JFrame)
JFrame上可以根据需要加载各种面板,在Swing中的JFrame窗体与AWT中的Frame窗体有一些不同。JFrame由他的窗体本身加上其上的JRootPane根面板,JLayeredPane层面板,containPane内容面板,glassPane玻璃面板,JMenuBar菜单栏(可选,不包括在内)四部分组成。其中根面板在JRootPane类中实现,层面板在JLayeredPane类中实现,他们都是JComponent的子类。而containPane和glassPane没有专门对应的类。
3.各种面板(或称窗格)的关系及作用:
JRootPane根面板:该面板是在JFrame窗体创建时就默认添加进来的,是所有其他面板的载体或父级,他覆盖窗体的除标题栏和边条之外的整个表面。根面板默认是不可见的。根面板负责管理其他面板(层面板,玻璃面板),如使其他面板覆盖整个JFrame窗体等。
JLayeredPane层面板:该面板是其他所有面板的父级,在JRootPane面板的上面,他再次覆盖窗体的整个表面,内容面板和JMenuBar菜单栏被添加到层面板上。当添加了菜单栏时,菜单栏被添加到JLayeredPane面板的顶部,剩下的部分被内容面板填充。层面板是分很多层的,每一层使用一个相应的数字来表示,而内容面板就位于层面板中的某一层,在后面的内容中我们可以看到层面板可以让你设计出相互重叠的内部窗体,层面板将负责管理各种内部窗体的叠放问题,对于层面板的每一层都相当于是一个容器,因此可以直接向层面板中添加组件。层面板的内容后面会作具体介绍。
containPane内容面板:由层面板的介绍可知,内容面板是层面板中的某一层。默认的内容面板是不透明的,而且是一个JPane对象。该面板在窗体中起着工作区的作用,当我们向窗体添加组件时就应该添加到这一层上,而不能像AWT那样直接添加到窗体上,若你那样做了,实际上该组件也是被添加到内容面板上的,若窗体未设置内容面板,则组件无法显示。比如要添加按钮jb则正确的方式为,Container p=jframe.getContentPane();
p.add(jr);
或jframe.getContentPane().add(jr);
其中getContentPane()是JFrame类中的方法,该方法将反回内容面板的引用,这是访问默认的内容面板的方法,因为默认的内容面板没有特定的名字,因此应使用该方法。
glassPane玻璃面板:该面板总是存在的,而且他位于最上面,默认情况下玻璃面板是不可见的,玻璃面板用于接收鼠标事件和在其他组件上绘图。
Java中JInternalFrame与JFrame的区别
方法1:
使用 public Component getFocusOwner()
例:
frame.getFocusOwner().setVisible(false);
方法2:
使用 public boolean isFocusOwner()
例:
for (Component component:frame.getComponents()) {
if (component.isFocusOwner())
component.setVisible(false);
两个methods都属于
java.awt
Class Component
谁android应用程序的四大组件之一,它负责管理android应用程序的用户界面
① Activity是Android应用中负责与用户交互的组件——大致上把它想象成Swing编程中的JFrame控件。不过它与JFrame的区别在于:JFrame本身可以设置布局管理器,不断地向JFrame中添加组件,但Activity只能通过setContentView(View)来显示指定组件。
Activity为Android应用提供里可视化用户界面,如果该Android应用需要多个用户界面,那么这个Android应用将会包含多个Activity,多个Activity组成Activity栈。当前活动的Activity位于栈顶。
View组件是所有UI控件、容器控件的基类,View组件就是Android应用中用户实实在在看到的部分。但View组件需要放到容器组件中,或者使用Activity将它显示出来。如果需要通过某个Activity把指定View显示出来,调用Activity的setContentView()方法即可。
----以上来自 疯狂的鲨鱼 博客园
JFrame 直接add(button) 和 getContentPane().add(button)有什么区别没
现在没什么区别了,老的JDK是有区别的,因为Jframe是frame的子类,而frame不是轻量级容器,那时候是有add这个方法,而Jframe是轻量级容器,拥有getContentPane()这个方法,至于为什么拥有这个方法我不太了解了,个人觉得这样添加的方法给直观,毕竟有的时候整个创建是有多层容器组成的,
更多文章:
java中的lambda表达式(Lambda表达式的Java表达式)
2026年4月9日 17:00
html文档流(怎么让html标签脱离文档流不受当前父类的宽度限制)
2026年4月9日 16:20
列表count函数(excel中count函数的使用方法步骤图)
2026年4月9日 16:00
python安装pillow库(安装python库Pillow(PIL)出现问题及解决方法)
2026年4月9日 15:40
jframe和frame的区别(Java JFrame 和 Frame 的区别)
2026年4月9日 15:00
properties文件是干什么的(idea里.properties文件的作用)
2026年4月9日 14:40
windows server 2012使用教程(请教Windows Server 2012如何实现NAS功能)
2026年4月9日 14:00





