首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Swing 應用程式顯示框架:JPanel 繼承與 JFrame 嵌入標準化啟動類別

     編輯:Java 相關知識

Swing Demo 顯示框架設計模式

將示範元件標準化為 JPanel 子類別,透過統一啟動器嵌入 JFrame 顯示,簡化測試與展示流程。

核心啟動類別:Show

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

public class Show {
    public static void inFrame(JPanel panel, int width, int height) {
        // 從類別名稱產生視窗標題
        String title = panel.getClass().toString();
        if (title.indexOf("class") != -1) title = title.substring(6);
        
        JFrame frame = new JFrame(title);
        frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) { System.exit(0); }
        });
        frame.getContentPane().add(panel, BorderLayout.CENTER);
        frame.setSize(width, height);
        frame.setVisible(true);
    }
}

Demo 元件撰寫範本

package c13.swing;
import javax.swing.*;
import java.awt.*;

public class MyDemo extends JPanel {
    public MyDemo() {
        // 初始化 UI 元件、佈局、事件
        setLayout(new BorderLayout());
        add(new JLabel("Hello Swing!"), BorderLayout.CENTER);
    }

    public static void main(String[] args) {
        // 寬 500、高 300
        Show.inFrame(new MyDemo(), 500, 300);
    }
}

設計優勢

特性說明
元件復用JPanel 可嵌入其他容器 (Applet、Dialog、另一 JPanel)
關注點分離Demo 邏輯與視窗管理分離
標準化啟動所有 Demo 共用同一進入點模式
RTTI 動態標題自動從類別名稱產生視窗標題
關閉處理統一 windowClosing → System.exit(0)

進階擴充:支援 JApplet 與參數化

public class Show {
    public static void inFrame(JPanel panel, int w, int h) { inFrame(panel, w, h, null); }
    
    public static void inFrame(JPanel panel, int w, int h, String[] appletArgs) {
        String title = panel.getClass().getSimpleName(); // 更簡潔
        JFrame frame = new JFrame(title);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // JDK 1.3+
        frame.getContentPane().add(panel, BorderLayout.CENTER);
        frame.setSize(w, h);
        frame.setLocationRelativeTo(null); // 置中
        frame.setVisible(true);
    }
    
    // Applet 模式啟動
    public static void inApplet(JPanel panel, int w, int h) {
        // 嵌入 JApplet 並 init/start
    }
}

使用情境

  • 教學範例快速預覽
  • 元件庫開發時的視覺化測試
  • 書範例代碼標準化執行方式
  • CI 流程中自動化截圖驗證
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved