<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    迷你大刀(JFrame迷你化)

    半夜1點了 廢話不多說

    效果圖:    雙擊以后

    思路其實很簡單...代碼也很少..我也加了少量的注釋..看不懂的話..加QQ群..教你

    package MiniMizeHack;

    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.Point;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;

    import javax.swing.ImageIcon;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JPanel;
    import javax.swing.JPopupMenu;

    public class MiniMize implements MouseListener, ActionListener {

        
    public JFrame frame;
        
    public JPanel panel;
        
    public JPopupMenu popup;

        
    public JMenuBar menubar;
        
    public JLabel top;
        
    public JLabel bottom;

        
    public MiniMize( ) {
            top 
    = new JLabel(new ImageIcon("Image/b3.gif"));
            bottom 
    = new JLabel("More configuration here");

            frame 
    = new JFrame("Mini Mize");
            panel 
    = new JPanel( );
            panel.setLayout(
    new BorderLayout( ));
            panel.add(
    "North",top);
            panel.addMouseListener(
    this);
            frame.getContentPane().add(panel);
            frame.addMouseListener(
    this);

            menubar 
    = new JMenuBar( );
            JMenu menu 
    = new JMenu("File");
            menu.add(
    new JMenuItem("Open"));
            menu.add(
    new JMenuItem("Quit"));
            menubar.add(menu);

            JMenu window 
    = new JMenu("Window");
            JMenuItem mini 
    = new JMenuItem("Minimize");
      
    //      mini.addActionListener(this);
            window.add(mini);
            menubar.add(window);
            frame.setJMenuBar(menubar);

            popup 
    = new JPopupMenu( );
            JMenuItem restore 
    = new JMenuItem("Restore");
      
    //      restore.addActionListener(this);
            popup.add(restore);
        }


        
    public void mousePressed(MouseEvent e) {
            maybeShowPopup(e);
        }


        
    public void mouseReleased(MouseEvent e) {
            maybeShowPopup(e);
        }

        
    public void mouseExited(MouseEvent e) { }
        
    public void mouseEntered(MouseEvent e) { }
        
    public void mouseClicked(MouseEvent e) 
            
    //=1 就是單擊  =2 就是雙擊
            if(e.getClickCount()==1){
                
            }

            
    if(e.getClickCount()==2){
                
    //判斷bottom是否顯示(廢話);
                if(bottom.isVisible()) {
            
    //        方法調用
                      switchToMini();
                   }
     else {
                       switchToNormal();
                   }

            }

        }

        
        
    private void maybeShowPopup(MouseEvent e) {
            
            
    if (e.isPopupTrigger()) {
                popup.show(e.getComponent( ),
                           e.getX(), e.getY());
            }


        }

        
    public void actionPerformed(ActionEvent evt) {
           
        }

        
    private Dimension normal_size;
        
        
    public void switchToMini( ) {
            
            Point location 
    = frame.getLocation( );
            
    //這個獲得frame的Dimension給normal_size(
            
    //我感覺這樣的變量名我不用解釋)一看就懂..(嘿嘿^v^);
            normal_size = frame.getSize( );
            frame.setVisible(
    false);
            frame 
    = new JFrame( );
            frame.setUndecorated(
    true);
            frame.getContentPane( ).add(panel);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            bottom.hide( );
            frame.setAlwaysOnTop(
    true);

            
    // 顯示frame 最近越來越喜歡frame.pack();了
            frame.pack( );
            frame.setLocation(location);
            frame.setVisible(
    true);

        }

        
    public void switchToNormal() {
            
    //這方法的代碼 跟SwitchToMini大體一樣..自己應該能理解
            Point location = frame.getLocation( );
            frame.setVisible(
    false);
            frame 
    = new JFrame( );
            frame.setUndecorated(
    false);
            frame.getContentPane( ).add(panel);
            
            bottom.show();
            frame.setJMenuBar(menubar);
            frame.setAlwaysOnTop(
    false);

            frame.pack();
            frame.setSize(normal_size);
            frame.setLocation(location);
            frame.setVisible(
    true);
        }

        
    public static void main(String[] args) {
            MiniMize mini 
    = new MiniMize( );
            mini.frame.pack( );
            mini.frame.setSize(
    300,300);
            mini.frame.setVisible(
    true);
        }

    }


    posted on 2008-05-30 01:12 相信 閱讀(735) 評論(1)  編輯  收藏 所屬分類: Swing文章

    評論

    # re: 迷你大刀(JFrame迷你化) 2008-05-30 02:37 晴天

    // 顯示frame 最近越來越喜歡frame.pack();了

    我一般是寫一個靜態類,然后傳幾個參數進去,隨便弄個窗體出來的,代碼重用的.
    沒那么多時間每次寫顯示Jframe那幾行代碼啊....還要玩游戲呢~~  回復  更多評論   

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統計

    公告

    不顯示applet

    常用鏈接

    留言簿(16)

    我參與的團隊

    隨筆檔案

    文章分類

    文章檔案

    新聞檔案

    相冊

    swingchina 專業搞Swing的網站

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲韩国精品无码一区二区三区| 亚洲女同成人AⅤ人片在线观看| 亚洲一卡2卡三卡4卡有限公司| 丝瓜app免费下载网址进入ios| 国产精品亚洲αv天堂无码| 一级看片免费视频| 久久亚洲2019中文字幕| 国产精品无码永久免费888| 国产偷国产偷亚洲清高动态图| 岛国岛国免费V片在线观看| 亚洲精品国产精品乱码在线观看| a级午夜毛片免费一区二区| 亚洲AV无码专区亚洲AV伊甸园| 无码A级毛片免费视频内谢| 亚洲人成毛片线播放| 最新中文字幕电影免费观看| 处破女第一次亚洲18分钟| 亚洲片一区二区三区| 日韩免费在线观看视频| 亚洲av无码片在线观看| 国产无遮挡吃胸膜奶免费看| yellow视频免费在线观看| 亚洲国产精品久久久久婷婷老年| 国产精品爱啪在线线免费观看| 亚洲AV无码一区二区三区网址| 亚洲精品99久久久久中文字幕| 国产精品免费观看调教网| 精品久久久久久亚洲精品| 免费国产怡红院在线观看| 国偷自产一区二区免费视频| 亚洲日本国产综合高清| 亚洲一区二区高清| 亚州免费一级毛片| 国产AV无码专区亚洲AV麻豆丫 | 激情综合色五月丁香六月亚洲| 十八禁无码免费网站| 亚洲精品国产第一综合99久久| 国产成人99久久亚洲综合精品| 99久久国产免费中文无字幕| 亚洲AV女人18毛片水真多| 亚洲高清在线视频|