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

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 影音先锋在线免费观看| 香蕉97超级碰碰碰免费公| 国产免费怕怕免费视频观看| 亚洲中文字幕久在线| 成人免费观看一区二区| 91亚洲导航深夜福利| 亚洲美女视频免费| 亚洲免费电影网站| 好爽…又高潮了毛片免费看 | 最近2018中文字幕免费视频| 亚洲AV无码第一区二区三区 | 亚洲а∨天堂久久精品9966| 免费H网站在线观看的| 在线亚洲午夜片AV大片| 久久精品网站免费观看| 精品亚洲国产成人av| 亚洲第一成人影院| 亚洲国产免费综合| 亚洲av之男人的天堂网站| 久久久久免费精品国产小说| 亚洲日韩乱码中文无码蜜桃臀| 在线观看免费人成视频色| 国产成人精品亚洲一区| 久久亚洲国产成人影院网站 | 午夜国产精品免费观看| 亚洲一线产品二线产品| 亚洲Av无码乱码在线播放| 91国内免费在线视频| 亚洲国产精品yw在线观看| 国产免费怕怕免费视频观看| 国产免费福利体检区久久| 亚洲成人午夜在线| 夜夜爽免费888视频| 九九热久久免费视频| 亚洲成a人片7777| 亚洲XX00视频| 最刺激黄a大片免费网站| 猫咪免费人成网站在线观看入口 | 91亚洲自偷在线观看国产馆| 免费国产成人高清在线观看麻豆| a级毛片无码免费真人久久|