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和可選menuBarJRootPane實例。
  • protected boolean rootPaneCheckingEnabled - 如果為true,則對addsetLayout方法的調用將轉發到contentPane

類構造函數

編號 類構造函數 說明
1 JFrame() 構造一個最初不可見的新框架。
2 JFrame(GraphicsConfiguration gc)
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() 返回此JFramecontentPane對象。
6 int getDefaultCloseOperation() 返回用戶在此JFrame上啟動“關閉”時發生的操作。
7 Component getGlassPane() 返回此JFrameglassPane對象。
8 Graphics getGraphics() 為此組件創建圖形上下文。
9 JMenuBar getJMenuBar() 返回此JFrame上設置的菜單欄。
10 JLayeredPane getLayeredPane() 返回此JFramelayeredPane對象。
11 JRootPane getRootPane() 返回此JFramerootPane對象。
12 TransferHandler getTransferHandler() 獲取transferHandler屬性。
13 static boolean isDefaultLookAndFeelDecorated() 如果新創建的JFrame具有由當前外觀提供的Window裝飾,則返回true
14 protected boolean isRootPaneCheckingEnabled() 返回對addsetLayout的調用是否轉發到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) 在時間毫秒內重新繪製此組件的指定矩形。
19 void setContentPane(Container contentPane) 設置contentPane屬性。
20 void setDefaultCloseOperation(int operation) 設置當用戶在此JFrame上啟動“關閉”時默認發生的操作。
21 static void setDefaultLookAndFeelDecorated(boolean defaultLookAndFeelDecorated) 提供關於新創建的JFrame是否應具有由當前外觀提供的Window裝飾(例如邊框,關閉窗口的小部件,標題…)的提示。
22 void setGlassPane(Component glassPane) 設置glassPane屬性。
23 void setIconImage(Image image) 設置要顯示為此窗口圖示的圖像。
24 void setJMenuBar(JMenuBar menubar) 設置此JFrame的菜單欄。
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) 設置是否將對addsetLayout的調用轉發到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程式:JFrameDemo.java

package com.zaixian.menu;


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

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

   public JFrameDemo(){
      prepareGUI();
   }
   public static void main(String[] args){
       JFrameDemo  swingContainerDemo = new JFrameDemo();
      swingContainerDemo.showJFrameDemo();
   }
   private void prepareGUI(){
      mainFrame = new JFrame("Java Swing JFrameDemo(示例)");
      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("歡迎您來到許虎虎~", 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("打開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);
   }
}

執行上面示例代碼,得到以下結果:

JFrame


上一篇: Swing容器類 下一篇:無