AWT Frame类

1 什么是Java AWT Frame

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

2 Java AWT Frame的语法

public class Frame
   extends Window
      implements MenuContainer

3 Java AWT Frame的构造方法

构造方法 描述
Frame() 构造一个最初不可见的 Frame 的新实例。
Frame(GraphicsConfiguration gc) 使用指定的 GraphicsConfiguration 构造一个新的、最初不可见的 Frame。
Frame(String title) 用指定的标题构造一个新的、最初不可见的 Frame 对象。
Frame(String title, GraphicsConfiguration gc) 使用指定的标题和 GraphicsConfiguration 构造一个新的、最初不可见的 Frame 对象。

4 Java AWT Frame的方法

方法 描述
void addNotify() 通过将其连接到本机屏幕资源,使此 Frame 可显示。
AccessibleContext getAccessibleContext() 获取与此 Frame 关联的 AccessibleContext。
int getCursorType() 已弃用。从 JDK 1.1 版开始,由 Component.getCursor() 取代。
int getExtendedState() 获取此帧的状态。
static Frame[] getFrames() 返回此应用程序创建的所有帧的数组。
Image getIconImage() 返回要显示为该框架图标的图像。
Rectangle getMaximizedBounds() 获取此帧的最大化边界。
MenuBar getMenuBar() 获取此框架的菜单栏。
int getState() 获取此帧的状态(已过时)。
String getTitle() 获取框架的标题。
boolean isResizable() 指示此框架是否可由用户调整大小。
boolean isUndecorated() 指示此框架是否未修饰。
protected String paramString() 返回表示此 Frame 状态的字符串。
void remove(MenuComponent m) 从此框架中删除指定的菜单栏。
void removeNotify() 通过移除与其原生屏幕资源的连接,使此 Frame 无法显示。
void setCursor(int cursorType) 已弃用。从 JDK 1.1 版开始,由 Component.setCursor(Cursor) 取代。
void setExtendedState(int state) 设置此帧的状态。
void setIconImage(Image image) 设置要作为此窗口图标显示的图像。
void setMaximizedBounds(Rectangle bounds) 设置此帧的最大化边界。
void setMenuBar(MenuBar mb) 将此框架的菜单栏设置为指定的菜单栏。
void setResizable(boolean resizable) 设置此框架是否可由用户调整大小。
void setState(int state) 设置此帧的状态(已过时)。
void setTitle(String title) 将此帧的标题设置为指定的字符串。
void setUndecorated(boolean undecorated) 禁用或启用此框架的装饰。

5 Java AWT Frame的例子

让我们看一个简单的Java AWT Frame类示例。

package com.yiidian;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

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 yiidian.com 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);  
   }
}

输出结果为:

热门文章

优秀文章