AWT Frame 类

简介

Frame 是一个带有边框和标题的顶层窗口。它使用 BorderLayout 作为默认布局管理器。

类声明

以下是 java.awt.Frame 类的声明:

public class Frame
    extends Window
        implements MenuContainer

字段

以下是 java.awt.Frame 类的字段:

  • static float BOTTOM_ALIGNMENT -- getAlignmentY 的易用常量。

  • static int CROSSHAIR_CURSOR -- 已弃用。由 Cursor.CROSSHAIR_CURSOR 替换。

  • static int DEFAULT_CURSOR -- 已弃用。由 Cursor.DEFAULT_CURSOR 替换。

  • static int E_RESIZE_CURSOR -- 已弃用。由 Cursor.E_RESIZE_CURSOR 替换。

  • static int HAND_CURSOR -- 已弃用。由 Cursor.HAND_CURSOR 取代。

  • static int ICONIFIED -- 此状态位表示框架已图标化。

  • static int MAXIMIZED_BOTH -- 此状态位掩码表示框架已完全最大化(即水平和垂直方向均最大化)。

  • static int MAXIMIZED_HORIZ -- 此状态位表示框架在水平方向上最大化。

  • static int MAXIMIZED_VERT -- 此状态位表示框架在垂直方向上最大化。

  • static int MOVE_CURSOR -- 已弃用。由 Cursor.MOVE_CURSOR 替换。

  • static int N_RESIZE_CURSOR -- 已弃用。由 Cursor.N_RESIZE_CURSOR 替换。

  • static int NE_RESIZE_CURSOR -- 已弃用。由 Cursor.NE_RESIZE_CURSOR 替换。

  • static int NORMAL -- 框架处于"正常"状态。

  • static int NW_RESIZE_CURSOR -- 已弃用。由 Cursor.NW_RESIZE_CURSOR 替换。

  • static int S_RESIZE_CURSOR -- 已弃用。由 Cursor.S_RESIZE_CURSOR 替换。

  • static int SE_RESIZE_CURSOR -- 已弃用。由 Cursor.SE_RESIZE_CURSOR 替换。

  • static int SW_RESIZE_CURSOR -- 已弃用。由 Cursor.SW_RESIZE_CURSOR 替换。

  • static int TEXT_CURSOR -- 已弃用。由 Cursor.TEXT_CURSOR 替换。

  • static int W_RESIZE_CURSOR -- 已弃用。由 Cursor.W_RESIZE_CURSOR 替换。

  • static int WAIT_CURSOR -- 已弃用。由 Cursor.WAIT_CURSOR 替换。

类构造函数

S.N.构造函数 &描述
1

Frame()

构造一个初始不可见的 Frame 的新实例。

2

Frame(GraphicsConfiguration gc)

使用指定的 GraphicsConfiguration 构造一个新的、初始不可见的 Frame。

3

Frame(String title)

使用指定的标题构造一个新的、初始不可见的 Frame 对象。

4

Frame(String title, GraphicsConfiguration gc)

使用指定的标题和一个图形配置。

类方法

S.N.方法与说明
1

void addNotify()

通过将此 Frame 连接到本机屏幕资源,使其可显示。

2

AccessibleContext getAccessibleContext()

获取与此 Frame 关联的 AccessibleContext。

3

int getCursorType()

已弃用。从 JDK 1.1 版开始,由 Component.getCursor() 取代。

4

int getExtendedState()

获取此框架的状态。

5

static Frame[] getFrames()

返回此应用程序创建的所有框架的数组。

6

Image getIconImage()

返回要显示为此框架的图标的图像。

7

Rectangle getMaximizedBounds()

获取此框架的最大化边界框架。

8

MenuBar getMenuBar()

获取此框架的菜单栏。

9

int getState()

获取此框架的状态(已过时)。

10

String getTitle()

获取框架的标题。

11

boolean isResizable()

指示此框架是否可通过用户。

12

boolean isUndecorated()

指示此框架是否未装饰。

13

protected String paramString()

返回表示此框架状态的字符串。

14

void remove(MenuComponent m)

从此框架中删除指定的菜单栏。

15

void removeNotify()

通过删除与本机屏幕的连接使此框架无法显示资源。

16

void setCursor(int cursorType)

已弃用。从 JDK 1.1 版开始,由 Component.setCursor(Cursor) 取代。

17

void setExtendedState(int state)

设置此框架的状态。

18

void setIconImage(Image image)

设置要显示为此窗口图标的图像。

19

void setMaximizedBounds(Rectangle bounds)

设置此框架的最大化边界。

20

void setMenuBar(MenuBar mb)

将此框架的菜单栏设置为指定的菜单栏。

21

void setResizable(boolean resizable)

设置此框架是否可由用户调整大小。

22

void setState(int state)

设置此框架的状态(已过时)。

23

void setTitle(String title)

将此框架的标题设置为指定的字符串。

24

void setUndecorated(boolean undecorated)

禁用或启用此框架的装饰。

继承的方法

此类从以下类继承方法:

  • java.awt.Window

  • java.awt.Container

  • java.awt.Component

  • java.lang.Object

Frame 示例

使用您选择的任何编辑器在 D:/ > AWT > com > tutorialspoint > gui > 中创建以下 Java 程序

AwtContainerDemo.java
package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;

public class AwtContainerDemo {
   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;
   private Label msglabel;

   public AwtContainerDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtContainerDemo  awtContainerDemo = new AwtContainerDemo();          
      awtContainerDemo.showFrameDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);
   
      msglabel = new Label();
      msglabel.setAlignment(Label.CENTER);
      msglabel.setText("Welcome to TutorialsPoint AWT Tutorial.");

      controlPanel = new Panel();
      controlPanel.setLayout(new FlowLayout());

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }
   
   private void showFrameDemo(){
      headerLabel.setText("Container in action: Frame");   

      final Frame frame = new Frame();
      frame.setSize(300, 300);
      frame.setLayout(new FlowLayout());       
      frame.add(msglabel);
      frame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            frame.dispose();
         }        
      });    
      Button okButton = new Button("Open a Frame");

      okButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            statusLabel.setText("A Frame shown to the user.");
            frame.setVisible(true);
         }
      });
      controlPanel.add(okButton);

      mainFrame.setVisible(true);  
   }
}

使用命令提示符编译程序。转到 D:/ > AWT 并键入以下命令。

D:\AWT>javac com	utorialspoint\gui\AwtContainerDemo.java

如果没有错误,则表示编译成功。使用以下命令运行程序。

D:\AWT>java com.tutorialspoint.gui.AwtContainerDemo

验证以下输出

AWT Frame

awt_containers.html