Swing - JWindow 类



简介

JWindow 类是一个可以显示但没有标题栏或窗口管理按钮的容器。

类声明

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

public class JWindow
   extends Window
      implements Accessible, RootPaneContainer

字段

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

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

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

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

类构造函数

序号 构造函数和描述
1

JWindow()

创建一个没有指定所有者的窗口。

2

JWindow(Frame owner)

创建一个具有指定所有者框架的窗口。

3

JWindow(GraphicsConfiguration gc)

创建一个具有指定屏幕设备 GraphicsConfiguration 的窗口。

4

JWindow(Window owner)

创建一个具有指定所有者窗口的窗口。

5

JWindow(Window owner, GraphicsConfiguration gc)

创建一个具有指定所有者窗口和屏幕设备 GraphicsConfiguration 的窗口。

类方法

序号 方法和描述
1

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

添加指定的子组件。

2

protected JRootPane createRootPane()

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

3

AccessibleContext getAccessibleContext()

获取与此 JWindow 关联的 AccessibleContext。

4

Container getContentPane()

返回此窗口的 contentPane 的容器。

5

Component getGlassPane()

返回此窗口的 glassPane 组件。

6

Graphics getGraphics()

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

7

JLayeredPane getLayeredPane()

返回此窗口的 layeredPane 对象。

8

JRootPane getRootPane()

返回此窗口的 rootPane 对象。

9

TransferHandler getTransferHandler()

获取 transferHandler 属性。

10

protected boolean isRootPaneCheckingEnabled()

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

11

protected String paramString()

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

12

void remove(Component comp)

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

13

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

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

14

void setContentPane(Container contentPane)

设置此窗口的 contentPane 属性。

15

void setGlassPane(Component glassPane)

设置 glassPane 属性。

16

void setLayeredPane(JLayeredPane layeredPane)

设置 layeredPane 属性。

17

void setLayout(LayoutManager manager)

设置 LayoutManager。

18

protected void setRootPane(JRootPane root)

设置此窗口的新 rootPane 对象。

19

protected void setRootPaneCheckingEnabled(boolean enabled)

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

20

void setTransferHandler(TransferHandler newHandler)

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

21

void update(Graphics g)

调用 paint(g)。

22

protected void windowInit()

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

继承的方法

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

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

JWindow 例子

使用您选择的任何编辑器创建以下 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.showJWindowDemo();
   }
   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 showJWindowDemo(){
      headerLabel.setText("Container in action: JWindow");   
      final MessageWindow window = new MessageWindow(
         mainFrame, "Welcome to TutorialsPoint SWING Tutorial.");

      JButton okButton = new JButton("Open a Window");
      okButton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            window.setVisible(true);
            statusLabel.setText("A Window shown to the user."); 
         }
      });
      controlPanel.add(okButton);
      mainFrame.setVisible(true);  
   }
   class MessageWindow extends JWindow{
      private String message; 
      public MessageWindow(JFrame parent, String message) { 
         super(parent);               
         this.message = message; 
         setSize(300, 300);       
         setLocationRelativeTo(parent);         
      }
      public void paint(Graphics g) { 
         super.paint(g);
         g.drawRect(0,0,getSize().width - 1,getSize().height - 1); 
         g.drawString(message,50,150); 
      } 
   }
}

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

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

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

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

验证以下输出。

SWING JWindow
swing_containers.htm
广告