Swing - JFrame 类



简介

JFrame 类是 java.awt.Frame 的扩展版本,它增加了对 JFC/Swing 组件体系结构的支持。

类声明

以下是 javax.swing.JFrame 类的声明:

public class JFrame
   extends Frame
      implements WindowConstants, Accessible, RootPaneContainer

字段

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

  • protected AccessibleContext accessibleContext - 可访问上下文属性。

  • static int EXIT_ON_CLOSE - 退出应用程序的默认窗口关闭操作。

  • protected JRootPane rootPane - 管理此框架的 contentPane 和可选的 menuBar 以及 glassPane 的 JRootPane 实例。

  • protected boolean rootPaneCheckingEnabled - 如果为 true,则对 add 和 setLayout 的调用将转发到 contentPane。

类构造函数

序号 构造函数和描述
1

JFrame()

构造一个最初不可见的新的框架。

2

JFrame(GraphicsConfiguration gc)

在屏幕设备的指定 GraphicsConfiguration 中创建一个具有空白标题的 Frame。

3

JFrame(String title)

创建一个新的、最初不可见的具有指定标题的 Frame。

4

JFrame(String title, GraphicsConfiguration gc)

使用指定的标题和屏幕设备的指定 GraphicsConfiguration 创建一个 JFrame。

类方法

序号 方法和描述
1

protected void addImpl(Component comp, Object constraints, int index)

添加指定的子组件。

2

protected JRootPane createRootPane()

由构造函数方法调用以创建默认的 rootPane。

3

protected void frameInit()

由构造函数调用以正确初始化 JFrame。

4

AccessibleContext getAccessibleContext()

获取与此 JFrame 关联的 AccessibleContext。

5

Container getContentPane()

返回此框架的 contentPane 对象。

6

int getDefaultCloseOperation()

返回用户在此框架上启动“关闭”时发生的操作。

7

Component getGlassPane()

返回此框架的 glassPane 对象。

8

Graphics getGraphics()

为此组件创建一个图形上下文。

9

JMenuBar getJMenuBar()

返回在此框架上设置的菜单栏。

10

JLayeredPane getLayeredPane()

返回此框架的 layeredPane 对象。

11

JRootPane getRootPane()

返回此框架的 rootPane 对象。

12

TransferHandler getTransferHandler()

获取 transferHandler 属性。

13

static boolean isDefaultLookAndFeelDecorated()

如果新创建的 JFrame 的窗口装饰由当前外观和感觉提供,则返回 true。

14

protected boolean isRootPaneCheckingEnabled()

返回是否将对 add 和 setLayout 的调用转发到 contentPane。

15

protected String paramString()

返回此 JFrame 的字符串表示形式。

16

protected void processWindowEvent(WindowEvent e)

处理在此组件上发生的窗口事件。

17

void remove(Component comp)

从容器中删除指定的组件。

18

void repaint(long time, int x, int y, int width, int height)

在 time 毫秒内重新绘制此组件的指定矩形。

19

void setContentPane(Container contentPane)

设置 contentPane 属性。

20

void setDefaultCloseOperation(int operation)

设置用户在此框架上启动“关闭”时默认发生的操作。

21

static void setDefaultLookAndFeelDecorated(boolean defaultLookAndFeelDecorated)

提供一个提示,指示是否应由当前外观和感觉为新创建的 JFrame 提供其窗口装饰(例如边框、关闭窗口的小部件、标题等)。

22

void setGlassPane(Component glassPane)

设置 glassPane 属性。

23

void setIconImage(Image image)

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

24

void setJMenuBar(JMenuBar menubar)

设置此框架的菜单栏。

25

void setLayeredPane(JLayeredPane layeredPane)

设置 layeredPane 属性。

26

void setLayout(LayoutManager manager)

设置 LayoutManager。

27

protected void setRootPane(JRootPane root)

设置 rootPane 属性。

28

protected void setRootPaneCheckingEnabled(boolean enabled)

设置是否将对 add 和 setLayout 的调用转发到 contentPane。

29

void setTransferHandler(TransferHandler newHandler)

设置 transferHandler 属性,这是一种支持将数据传输到此组件的机制。

30

void update(Graphics g)

只调用 paint(g)。

继承的方法

此类继承自以下类的方法:

  • java.awt.Frame
  • java.awt.Window
  • java.awt.Container
  • java.awt.Component
  • java.lang.Object

JFrame 示例

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

SwingContainerDemo.java

package com.tutorialspoint.gui;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class SwingContainerDemo {
   private JFrame mainFrame;
   private JLabel headerLabel;
   private JLabel statusLabel;
   private JPanel controlPanel;
   private JLabel msglabel;

   public SwingContainerDemo(){
      prepareGUI();
   }
   public static void main(String[] args){
      SwingContainerDemo  swingContainerDemo = new SwingContainerDemo();  
      swingContainerDemo.showJFrameDemo();
   }
   private void prepareGUI(){
      mainFrame = new JFrame("Java Swing 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 JLabel("", JLabel.CENTER);        
      statusLabel = new JLabel("",JLabel.CENTER);    
      statusLabel.setSize(350,100);
      msglabel = new JLabel("Welcome to TutorialsPoint SWING Tutorial.", JLabel.CENTER);

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

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }
   private void showJFrameDemo(){
      headerLabel.setText("Container in action: JFrame");   
      final JFrame frame = new JFrame();
      frame.setSize(300, 300);
      frame.setLayout(new FlowLayout());       
      frame.add(msglabel);
      
      frame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            frame.dispose();
         }        
      });    
      JButton okButton = new JButton("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:/ > SWING 并键入以下命令。

D:\SWING>javac com\tutorialspoint\gui\SwingContainerDemo.java

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

D:\SWING>java com.tutorialspoint.gui.SwingContainerDemo

验证以下输出。

SWING JFrame
swing_containers.htm
广告