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

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

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

    小試菜刀(Swing放大鏡)

    哎呀..我那個近視啊...近視的我快連1厘米進的電腦屏幕上的字都看不清了..
     怎么辦呢??當然是用放大鏡啦~~~~~~  攝影機 !!向我這看!!

    效果圖:
        

    開始代碼啦:

     

    package Magnifier;

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

    public class Magnifier extends JFrame
    {
        
    private Container container = getContentPane();

        

        private int setCoordinateX;

        
    private int setCoordinateY;

        
    private int absoluteCoordinateX;

        
    private int absoluteCoordinateY;

        
    private int relativeCoordinateXWhenMousePressed;

        
    private int relativeCoordinateYWhenMousePressed;

        
    //標記鼠標是否按下。如果按下則為true,否則為false
        private boolean mousePressedNow;

        
    // 放大鏡尺寸
        private int magnifierSize = 300;

        
    //放大鏡內容面板
        private MagnifierPanel magnifierPanel = new MagnifierPanel(magnifierSize);

        
    //這個窗體就是放大鏡 你可以自己更改這個窗體..
        public Magnifier()
         
    {
           setUndecorated(
    true); // 這個就是窗口的邊緣 false的話就失效果了
           setResizable(false); 
           container.add(magnifierPanel);
           addMouseListener(
    new MouseFunctions());
           addMouseMotionListener(
    new MouseMotionFunctions());
           updateSize(magnifierSize);
           
    this.setVisible(true);
         }


        
    public static void main(String arg[])
         
    {
        
    // JFrame 
         Magnifier magnifier = new Magnifier();
         magnifier.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         }

        
        
    public void updateSize(int magnifierSize)
         
    {
            magnifierPanel.setMagnifierSize(magnifierSize 
    + 100);
            setSize(magnifierSize 
    + 100, magnifierSize + 100);
            validate();

         }


        
    private class MouseFunctions extends MouseAdapter
         
    {
        
    public void mousePressed(MouseEvent e)
         
    {
            
    if (e.getClickCount() == 1)
             
    {// 如果鼠標左鍵點了一下,說明按住了窗體
             mousePressedNow = true;
             relativeCoordinateXWhenMousePressed 
    = e.getX();
             relativeCoordinateYWhenMousePressed 
    = e.getY();
             }

         }


        
    public void mouseReleased(MouseEvent e)
         
    {
             mousePressedNow 
    = false;
         }

        }


        
    private class MouseMotionFunctions extends MouseMotionAdapter
         
    {
         
    public void mouseDragged(MouseEvent e)
         
    {
          
    if (mousePressedNow == true)
          
    {// 如果此時鼠標按下了,說明在拖拽窗體
           absoluteCoordinateX = Magnifier.this
              .getLocationOnScreen().x
               
    + e.getX();
           absoluteCoordinateY 
    = Magnifier.this
            .getLocationOnScreen().y
            
    + e.getY();
           setCoordinateX 
    = absoluteCoordinateX
            
    - relativeCoordinateXWhenMousePressed;
           setCoordinateY 
    = absoluteCoordinateY
                
    - relativeCoordinateYWhenMousePressed;
           magnifierPanel.setMagnifierLocation(setCoordinateX,
                setCoordinateY);
           setLocation(setCoordinateX, setCoordinateY);
          }

         }

         }

    }


    class MagnifierPanel extends JPanel
    {
        
    private Image screenImage;

        
    private int magnifierSize;

        
    private int locationX;

        
    private int locationY;

        
    private Robot robot;

         
    public MagnifierPanel(int magnifierSize)
         
    {
           
    try
              
    {
                robot 
    = new Robot();
              }

           
    catch (AWTException e){
           }

         

           screenImage = robot.createScreenCapture(new Rectangle(00, Toolkit
             .getDefaultToolkit().getScreenSize().width, Toolkit
             .getDefaultToolkit().getScreenSize().height));
          
          
    this.magnifierSize = magnifierSize;
         }


        
    public void setMagnifierLocation(int locationX, int locationY)
         
    {
        
    //X坐標
         this.locationX = locationX;
        
    //Y坐標
         this.locationY = locationY;
         repaint();        
    // 注意重畫控件
         }


        
    public void setMagnifierSize(int magnifierSize)
         
    {
         
    this.magnifierSize = magnifierSize;
         }


        
    public void paintComponent(Graphics g)
         
    {
         
    super.paintComponent((Graphics2D) g);
        
    // 關鍵處理代碼
         g.drawImage(
           screenImage,                 
    // 要畫的圖片
           0,                    // 目標矩形的第一個角的x坐標     
           0,                    // 目標矩形的第一個角的y坐標
           magnifierSize,                 // 目標矩形的第二個角的x坐標
           magnifierSize,                 // 目標矩形的第二個角的y坐標
           locationX + (magnifierSize / 4),     // 源矩形的第一個角的x坐標
           locationY + (magnifierSize / 4),    // 源矩形的第一個角的y坐標
           locationX + (magnifierSize / 4 * 3),     // 源矩形的第二個角的x坐標
           locationY + (magnifierSize / 4 * 3),     // 源矩形的第二個角的y坐標
           this
         );
       }

    }


    posted on 2008-05-21 18:09 相信 閱讀(1151) 評論(4)  編輯  收藏 所屬分類: Swing文章

    評論

    # re: 小試菜刀(Swing放大鏡) 2008-05-21 19:11 lzw

    功能還不錯,就是效果比較差。  回復  更多評論   

    # re: 小試菜刀(Swing放大鏡) 2008-05-21 19:12 相信

    一起學習...我也是個Swing菜鳥  回復  更多評論   

    # re: 小試菜刀(Swing放大鏡) 2008-08-23 13:25 張相

    不錯啊!以后要學習學習!  回復  更多評論   

    # re: 小試菜刀(Swing放大鏡) 2010-06-06 22:06 大師傅

    這個是有問題的 就是只能截取一次屏幕 我新開個界面什么的 顯示還是原來的 主要就在于Robot那里  回復  更多評論   

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

    導航

    統計

    公告

    不顯示applet

    常用鏈接

    留言簿(16)

    我參與的團隊

    隨筆檔案

    文章分類

    文章檔案

    新聞檔案

    相冊

    swingchina 專業搞Swing的網站

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费人成网站在线观看10分钟| 一级毛片无遮挡免费全部| 一级毛片在线免费观看| 亚洲精品美女久久久久99| h在线看免费视频网站男男| 亚洲AV无码国产一区二区三区| 欧美大尺寸SUV免费| 亚洲一卡2卡3卡4卡5卡6卡 | 国产亚洲精品国看不卡| 又黄又大的激情视频在线观看免费视频社区在线 | 亚洲精品老司机在线观看| 日亚毛片免费乱码不卡一区| 亚洲国产精品日韩| 亚洲国产成人精品无码区在线秒播| 国产亚洲精彩视频| 亚洲国产成人VA在线观看| 亚洲免费视频一区二区三区| 亚洲中文字幕伊人久久无码| 亚洲AV无码一区二区乱子仑| 四虎免费影院4hu永久免费| a级毛片免费网站| 亚洲AV无码国产精品麻豆天美 | 黄页网站免费在线观看| 亚洲国产欧美国产综合一区 | 亚洲激情视频在线观看| 97在线观看永久免费视频| 91麻豆国产自产在线观看亚洲| 免费在线观影网站| 亚洲国产精品久久网午夜| 国产免费黄色大片| 永久免费A∨片在线观看| 亚洲偷自精品三十六区| 亚洲人AV永久一区二区三区久久| 久久精品人成免费| 久久精品亚洲综合专区| 欧美好看的免费电影在线观看| jizz日本免费| 亚洲综合小说另类图片动图| 国产中文在线亚洲精品官网| 猫咪免费人成网站在线观看| 亚洲视频一区二区三区|