`

swing中的最上层组件

    博客分类:
  • java
阅读更多
swing中几乎所有组件都是从JComponent衍生而来,也就是说这些组件lightweight component,均由纯java code所编写而成.swing中以下几个组件不是由JComponent继承而来:
JFrame(JRoot Pane)//常用来建立主窗口
    JDialog(JRoot Pane)//对话框窗口
    JWindow(JRoot Pane)//经常用做logo窗口,无标题栏,无边框
    JApplet(JRoot Pane)//用来构造applet小应用程序
    以上四个组件是heavyweight Component,必须使用到native code来画出这四个窗口组件.因为要在操作系统中显示窗口画面,必须使用操作系统的窗口资源,而以往的AWT组件大多使用native code所构造出来,因此Swing中的JFrame便继承原有AWT中的Frame类,而不是继承JComponent类.同样,JApplet是继承原有AWT中的JApplet类,也不是继承JComponent类.
    JFrame,JDialog,JWindow及JApplet这四个组件统称为最上层组件,因为其余的swing组件都必须依附在此四组件之一上才能显示出来,也就是说swing中要建立窗口必须使用其中的一个最上层组件.此四组件均含有RootPane组件,且均实现了RootPaneContainer这个接口.附图:




关于RootPaneContainer接口.RootPaneContainer接口定义了各种容器取得与设置的方法,这里的各种容器指的是JRootPane(虚拟的容器),GlassPane,Content.共有五个类实现了RootPaneContainer接口,除了上面所提到得四个最上层得重量级组件之外,还有轻量级的JInternalFrame,它不能单独显示.RootPaneContainer定义了以下几种方法:
    Container getContentPane();
    Component getGlassPane();
    JLayeredPane getLayeredPane();
    JRootPane getRootPane();
    void setContentPane(Container contentpane);
    void setGlassPane(Component glasspane);
    void setLayeredPane(JLayeredPane layeredpane);
    关于JRootPane类.JRootPane由GlassPane,ContentPane以及MenuBar(可选)组成,其中ContentPane和MenuBar又都由LayeredPane管理.GlassPane位于最上面,用来捕捉鼠标行为.LayeredPane就像家中放鞋子的鞋架,有很多层,而ContentPane则只是其中的一层,一般我们只要对这一层进行操作就行了.
附图:



我们要在最上层组件上加入任何组件只能在GlassPane和ContentPane上面增加,也就是在Layered Pane上面或者在Layered Pane的ContentPane上面增加.  
    以JFrame为例,一般我们要在JFrame上加入其他组件(如JButton,JLabel等)必须先取得JFrame的Content Pane,然后将要加入的组件放在此Content Pane中,而不是直接就加到JFrame上.因此若要在JFrame中加入一个按钮,不能像以前AWT时一样写成frame.add(button)的形式,而必须先取得JFrame的Content Pane,然后将按钮加入Content Pane中,如:
    frame.getContentPane().add(button)

  • 大小: 5.9 KB
  • 大小: 2.6 KB
分享到:
评论

相关推荐

    Swing读书笔记

    Swing中的最上层组件(`JFrame`, `JDialog`, `JWindow`, `JApplet`)实现`RootPaneContainer`接口,该接口定义了访问和设置`JRootPane`的方法。`JRootPane`本身不是一个真正的容器,而是由`GlassPane`和`LayeredPane`...

    mysql.zip_swing

    MySQL是一个精巧的SQL数据库管理系统,虽然它不是开放源代码的产品,但在某些情况下你可以自由使用。由于它的强大功能、灵活性、丰富的应用编程接口(API)以及精巧的系统结构,受到...组件,也就是所谓的最上层组件。

    优秀java swing GUI 工作原理.pd

    从最底层的Java运行环境和Swing核心库,到中间层的面板、布局管理器、验证器、应用框架和辅助库,再到上层的外观定制、组件管理和实用工具,直至最终形成完整的应用程序。这种层次化的结构使得开发者能够根据需求...

    欣赏Swing的大厦结构(意外的发现)

    这个比喻源自于建筑学,大厦的基石代表了基础组件,而大厦的上层则表示更高级、功能更复杂的组件。Swing提供了一套丰富的组件,包括按钮、文本框、滚动面板、菜单等,这些组件构成了我们所见的各种GUI应用。 Swing...

    基于mybatis的员工档案管理系统(swing)

    【标题】"基于MyBatis的员工档案管理系统(Swing)"揭示了这个项目的核心技术栈,即MyBatis和Swing,它们是Java开发中的两个关键组件。MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。...

    Java语言系统界面设计.ppt

    Swing是构筑在AWT上层的一组GUI组件的集合,对于底层平台的依赖更少。Swing中保留了AWT的事件处理、颜色、字体等处理。 3. Swing编程 Swing组件都是AWT的Container类的直接子类和间接子类。JComponent类是大部分...

    JAVA课件PPT6 (电子科技大学)

    在AWT和Swing中,组件的Z-order通常是:组件总是在容器之上,且先添加的组件在上层。 GUI主要由容器、控制组件和用户自定义成分组成。容器(Container)是界面的基础,它可以容纳其他组件,并能根据特定规则(如...

    式等技术构造了3D的上层结构,

    通过使用Java Swing组件,开发者还可以创建包含3D视图的交互式用户界面。 虽然本文件的部分内容提到了ActionScript 3的Vector类,这是一个与Java3D无关的特性,主要用于在Flash Player 10中创建类型安全且性能优化...

    Java多层的窗口框架实现一例.rar

    4. **事件处理**:在多层窗口框架中,可能需要处理组件间的事件交互,如点击底层按钮时,上层窗口的行为变化。这需要通过添加事件监听器来实现,如`MouseListener`、`ActionListener`等。 5. **动画效果**:`...

    Window_show_java_window.show_show_

    9. **Focus Management**:为了保证悬浮框始终在最上层,可能需要处理窗口的焦点管理。可以使用`toFront()`方法让窗口置于其他窗口之前。 10. **动画效果**:为了增加用户体验,可以添加一些动画效果,如淡入淡出、...

    计算机二级java上机真题40道.pdf

    - `JLabel`, `JTextField`, `JPanel`: Swing组件,分别用于显示文本、接收用户输入和组织组件。 - `ActionListener`: 这是Java中的接口,通常与按钮等交互元素关联,用于处理用户的点击事件。虽然题目中没有详细...

    java漂浮窗口源代码

    3. **窗口层次**:为了使漂浮窗口始终位于最上层,需要调用`setAlwaysOnTop(true)`方法,这样窗口就会保持在其他窗口之前。 4. **动态更新**:为了实现类似迅雷那样的实时更新功能,需要在后台线程中处理数据更新,...

    java常用单词

    Panel是Swing中的容器,用于组织和显示其他GUI组件。 #### 布局 (Layout) 布局管理器负责自动调整GUI组件的位置和大小。 #### 滚动 (Scroll) 滚动通常指的是通过拖动滚动条来查看超出视图范围的内容。 #### 垂直 ...

    Swt JFace in Action 中文版

    这不同于Swing,Swing是完全基于Java虚拟机运行的,它的组件是通过Java的AWT(Abstract Window Toolkit)进行本地化渲染,这通常会导致界面在不同平台间有所差异。 ### SWT和JFace的类库结构和特点 - **SWT的结构...

    云记账管理系统

    其次,Swing是Java提供的用于创建桌面应用的GUI库,它提供了丰富的组件和事件处理机制。在云记账管理系统中,Swing被用来构建用户界面,包括输入框、按钮、表格等元素,使得用户可以直观地进行记账操作。Swing的模型...

    图书管理系统javase

    在图书管理系统中,Swing被用来构建各种组件,如按钮、文本框、列表视图等,以实现用户友好的交互界面。开发者可以利用JFrame作为主窗口,JButton实现功能按钮,JLabel展示信息,JTable显示图书数据,JTextArea用于...

    SocketDebug 源代码

    在SocketDebug中,MINA负责处理底层的TCP连接,实现高效的网络通信,同时提供了易于使用的接口供上层应用进行数据交换。 2. **Swing图形用户界面**: Swing是Java的一个图形用户界面(GUI)工具包,用于构建桌面...

    计算机等级考试二级Java练习题及解析·doc

    计算机等级考试二级Java练习题及解析涵盖了多个Java编程的基础知识点,包括算法时间复杂度、数据结构、程序设计原则、软件工程、数据库设计、Java语言特性、异常处理、流的概念、Swing组件、对象序列化、软件调试...

    将图形窗口设置为始终在顶部。:更改始终在顶部的窗口状态。-matlab开发

    SETALWAYSONTOP(HFIG,TRUE) 将使带有句柄 HFIG 的 Matlab 图形位于操作系统中的其他窗口... Swing 组件必须在当前的 Matlab 会话中可用。 例子: hFig = 图; setAlwaysOnTop(hFig,true); % 数字现在位于其他窗口的顶部

    Java swt 64位 开发集合jar包

    Java SWT(Standard Widget Toolkit)是Java编程环境中用于创建桌面应用程序的一种库,它是Java AWT(Abstract Window Toolkit)和Swing的替代品。SWT提供了与操作系统底层交互的能力,因此可以创建更加原生、高效的...

Global site tag (gtag.js) - Google Analytics