当前位置: 首页 > 教程 > Java Swing >

Java JRootPane

精华
小牛编辑
145浏览
2023-03-14

1 Java JRootPane的介绍

JRootPane是JFrame,JDialog,JWindow,JApplet和JInternalFrame在后台使用的轻量级容器。

2 Java JRootPane内部类

内部类 描述
protected class JRootPane.AccessibleJRootPane 此类为JRootPane类实现可访问性支持。
protected class JRootPane.RootLayout 一个自定义布局管理器,负责layeredPane,glassPane和menuBar的布局。

3 Java JRootPane的字段

字段 描述
static int COLOR_CHOOSER_DIALOG 用于windowDecorationStyle属性的常数。
protected JButton contentPane 内容窗格。
protected Container defaultButton 当窗格具有焦点并发生特定于UI的操作(例如按Enter键)时,将激活该按钮。
protected JMenuBar menuBar 菜单栏。
protected Component glassPane 覆盖在菜单栏和内容窗格上的玻璃窗格,因此它可以拦截鼠标的移动等。
static int ERROR_DIALOG 用于windowDecorationStyle属性的常数。

4 Java JRootPane的构造方法

构造方法 描述
JRootPane() 创建一个JRootPane,设置其glassPane,layeredPane和contentPane。

5 Java JRootPane的方法

方法 描述
protected void addImpl(Component comp, Object constraints, int index) 重写以强制将玻璃组件的位置设置为零子级。
void addNotify() 通知此组件它现在具有父组件。
protected Container createContentPane() 构造函数方法调用它来创建默认的contentPane。
protected Component createGlassPane() 由构造函数方法调用以创建默认的glassPane。
AccessibleContext getAccessibleContext() 获取与此JRootPane关联的AccessibleContext。
JButton getDefaultButton() 返回defaultButton属性的值。
void setContentPane(Container content) 设置内容窗格-包含由根窗格作为父级的组件的容器。
void setDefaultButton(JButton defaultButton) 设置defaultButton属性,该属性确定此JRootPane的当前默认按钮。
void setJMenuBar(JMenuBar menu) 添加或更改在分层窗格中使用的菜单栏。

6 Java JRootPane的案例

package cn.xnip;

/**
 * 小牛知识库网: https://www.xnip.cn
 */

import javax.swing.JButton;
import javax.swing.JFrame;  
import javax.swing.JMenu;  
import javax.swing.JMenuBar;  
import javax.swing.JRootPane;  
  
public class JRootPaneExample {  
     public static void main(String[] args) {  
            JFrame f = new JFrame();  
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
            JRootPane root = f.getRootPane();  
  
            // Create a menu bar  
            JMenuBar bar = new JMenuBar();  
            JMenu menu = new JMenu("File");  
            bar.add(menu);  
            menu.add("Open");  
            menu.add("Close");  
            root.setJMenuBar(bar);  
  
            // Add a button to the content pane  
            root.getContentPane().add(new JButton("Press Me"));  
  
            // Display the UI  
            f.pack();  
            f.setVisible(true);  
          }  
}  

输出结果为: