<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的網站

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲一区二区免费视频| 国产亚洲精品成人久久网站| 青青久在线视频免费观看| 国产精品亚洲色图| 亚洲日本va在线视频观看| 一个人免费观看www视频在线| 国产精品无码亚洲精品2021| 亚洲成A人片777777| 日韩成人免费在线| 国产午夜精品理论片免费观看| 亚洲美女色在线欧洲美女| 天堂亚洲国产中文在线| 亚洲精品无码久久毛片 | 在线免费观看国产| 色综合久久精品亚洲国产| 亚洲av最新在线网址| 亚洲国产成人AV网站| 亚洲AV本道一区二区三区四区 | vvvv99日韩精品亚洲| 69pao强力打造免费高清| 久久亚洲中文无码咪咪爱| 国产成人亚洲精品青草天美| 午夜a级成人免费毛片| 色猫咪免费人成网站在线观看| 美女尿口扒开图片免费| 亚洲欧洲日产v特级毛片| 亚洲中文字幕无码永久在线| 免费观看的a级毛片的网站| 中文字幕成人免费视频| 九九视频高清视频免费观看 | 曰批免费视频播放免费| 亚洲人成激情在线播放| 久久精品亚洲综合一品| 亚洲国产一级在线观看 | 亚洲免费综合色在线视频| 成全高清在线观看免费| 特级aa**毛片免费观看| 亚洲人成色777777老人头| 亚洲第一页在线视频| 亚洲avav天堂av在线不卡| 亚洲日本乱码在线观看|