当前位置: 首页 > 面试题库 >

在Java中,JFrame是重量级组件还是轻型组件?

樊博雅
2023-03-14
问题内容

我知道Swing被认为是轻量级的,因为它是完全用Java实现的,而无需调用本机操作系统来绘制图形用户界面组件。

另一方面,AWT(抽象窗口工具箱)是重量级的工具箱,因为它仅调用操作系统以产生其GUI组件。

但是我听说Swing仍然基于AWT,甚至Swing组件也必须至少有一个重量级的容器。换句话说,JFrame,JApplet不是轻量级的,是真的吗?找出你的原因?


问题答案:

JFrame是重量级的,因为要在大多数OS中创建任务视图级窗口,而又不创建“大量”
AWT窗口是不可能的。轻量级的组件可以用不需要JNI调用的基于Java的东西替换内部小部件,但是windows是特例。不过,JFrame确实允许您执行自定义渲染。另外,如果您正在使用其他轻量级的东西,那么我建议您也使用JFrame,因为它使渲染比混合轻量和重量的组件总体上更有效。



 类似资料:
  • 问题内容: JPanel和JFrame有什么区别,以及与轻量级,重量级的关系? 问题答案: JPanel是允许将多个UI组件放在一起的容器。JFrame是使用Swing编写的窗口。 所有的Swing组件都是所谓的“轻型”组件,因为它们是用Java编写的。例如,如果您运行Swing应用程序并尝试使用UI分析工具(例如Windows中的WinSpy)对其进行分析,则只会看到一个元素:窗口(JFrame

  • 问题内容: 我对Java GUI有一个一般性的问题。如果我有几个要添加到JFrame的组件,我应该将它们直接放在JFrame中,还是将它们添加到JPanel,然后将面板添加到框架中?如果最好先将组件添加到JPanel,为什么?我通常这样做,然后我理解我不知道为什么/如果这是更可选的然后直接添加到框架中。JFrame还具有布局管理器,因此可以将它们放置在正确的位置。 问题答案: 将组件添加到框架时,

  • 前言 问题 对上面的 内容理解有些偏差. React中可以使用class或者function定义组件. React中的组件树中的每一个节点 代表的是组件 还是组件实例对象? 我的理解是 节点代表组件实例对象. 对于每一个节点都会创建 对应 节点组件的一个实例对象. Hook状态数组是 绑定在组件上 还是绑定在 组件实例对象上? 我的理解是 每一个组件实例对象都有一个独立的Hook状态数组,从而实现

  • 我正在Java SE 8中使用惰性函数操作,我想

  • 问题内容: 数组不是Java中的原始类型,但它们也不是对象,因此它们是按值还是按引用传递?它是否取决于数组包含的内容,例如引用或原始类型? 问题答案: 。如果是Array(只不过是Object),则数组引用按值传递。(就像对象引用按值传递)。 当你将数组传递给其他方法时,实际上是复制对该数组的引用。 通过该引用对数组内容进行的任何更改都会影响原始数组。 但是,将引用更改为指向新数组不会更改原始方法

  • 问题内容: 我已经看到了几种有神论的方法,它们似乎都起作用,但是我只是想知道一种方法是否比另一种更好。 例如,一个叫你可以这样做: 您还可以执行以下操作: 这些“正确”之一吗? 问题答案: 来自类javadoc的文字副本 JFrame类与Frame略有不兼容。像所有其他JFC / Swing顶级容器一样,JFrame包含JRootPane作为其唯一的子级。根窗格提供的内容窗格通常应包含JFrame