Frame

       frame允许我们在多个独立于窗口的视图(view)里表现文档(document),多视图使我们很方便,比如我可以让有些信息可见、其他信息不可见(比如滚动显示)。举例来说,我们可以在同一个窗口内,让一个frame显示静态标签,而让另一个frame显示导航菜单,第三个frame显示能滚动的document,如何滚动却由第二个frame来选择。是不是很有意思?下面给出一个例子:
      frameset 元素可定义一个框架集合。它被用来组织多个窗口(框架)。每个框架存有独立的文档。
   
<html>
<frameset cols="25%,50%,25%">
  <frame src="/example/html/frame_a.html">
  <frame src="/example/html/frame_b.html">
  <frame src="/example/html/frame_c.html">
</frameset>
</html>


它的布局可能是这样的:
 ---------------------------------------
|         |                             |
|         |                             |

| Frame 1                           |
|         |                             |
|         |                             |
|---------|                             |
|         |          Frame 3            |
|         |                             |
|         |                             |
|         |                             |
| Frame 2 |                             |
|         |                             |
|         |                             |
|         |                             |
|         |                             |
 ---------------------------------------

        在Qt中,QWebFrame类呈现网页中的frame。每个QWebPage对象包含至少一个frame,frame可以通过QWebPage::mainFrame()获取。更多的frame是通过HTML的标签<frame> 或者 <iframe>建立的。frame使用load() 或者 setUrl()函数加载。或者,如果你有HTML内容,也可以使用setHtml()函数加载它。page()函数返回网页对象的指针。参考QWebView的解释,它告诉我们网页frame是如何与page、view发生关联的。

        QWebFrame也提供方法获取由frame加载的URL以及原来请求过的URL,参看requestedUrl()。这些方法使得我们可以获取DNS之前和之后的URL,或者加载期间发生重定向之前之后的URL。

在计算机图形用户界面(GUI)编程中,`Frame` 是一个重要的概念,尤其是在像 Java 的 AWT 和 Swing 这样的 GUI 工具包里。简单来说,`Frame` 就是我们常说的应用程序主窗口。它是应用程序的主要容器,在其中可以添加各种控件(例如按钮、文本框等),并组织它们形成完整的用户交互界面。 ### 具体介绍 #### 1. **AWT 中的 Frame** - 在早期的 Java Abstract Window Toolkit (AWT) 中,`Frame` 类用于创建一个基础的顶层窗口。 - 它没有默认的关闭操作,开发者需要手动处理窗口的关闭事件。 **示例代码:** ```java import java.awt.Frame; public class MyFirstFrame { public static void main(String[] args){ Frame f = new Frame("Hello World!"); f.setSize(400, 300); // 设置大小 f.setVisible(true); // 显示窗口 } } ``` #### 2. **Swing 中的 JFrame** 随着技术发展,Java 推出了功能更强大的 Swing 库,并引入了 `JFrame` 替代传统的 AWT `Frame`。相比前者,`JFrame` 提供更多的特性和更好的跨平台支持。 **区别在于:** - `JFrame` 属于轻量级组件,能与其他 Swing 组件更好地兼容; - 默认包含了一个系统菜单栏及多种便捷方法设置窗口属性; **典型用法:** ```java import javax.swing.JFrame; import javax.swing.JButton; public class MySwingFrame { public static void main(String[] args){ JFrame frame = new JFrame("My First JFrame"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JButton button = new JButton("Click Me!"); frame.getContentPane().add(button); frame.pack(); // 自动调整尺寸适应内部组件 frame.setVisible(true); } } ``` --- ### 总结 无论是 `Frame` 还是改进版的 `JFrame`,都是构建桌面应用不可或缺的基础元素之一,熟悉其基本特性对于学习 GUI 编程非常重要!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值