2015-04-16 2 views
-1

Я пытаюсь разработать приложение масштабирования, который масштабирует область прямоугольника, который окружает указатель мыши ...Свинг Увеличить Применение

/* * Для того, чтобы изменить заголовок лицензии, выберите Лицензионные заголовки в свойствах проекта. * Чтобы изменить этот шаблонный файл, выберите «Инструменты» | Шаблоны * и откройте шаблон в редакторе. */ упаковка zoom;

import java.awt.AWTException; 
import java.awt.Color; 
import java.awt.Dimension; 
import java.awt.Graphics; 
import java.awt.MouseInfo; 
import java.awt.Point; 
import java.awt.PointerInfo; 
import java.awt.Rectangle; 
import java.awt.Robot; 
import java.awt.Toolkit; 
import java.awt.Window; 
import java.awt.image.BufferedImage; 
import javax.swing.JFrame; 

/** 
* 
* @author keyur Parekh 
*/ 
public class Zoom extends JFrame implements Runnable { 

    Robot r; 
    Window wnd; 
    int width, height; 

    /** 
    */ 
    public Zoom() { 
     try { 
      r = new Robot(); 
      Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); 
      width = (int) d.getWidth(); 
      height = (int) d.getHeight(); 
      System.out.println(width + " " + height); 
      wnd = new Window(this); 
      wnd.setSize(400, 400); 
      wnd.setLocation(0, 0); 
      wnd.setVisible(true); 
     } catch (AWTException e) { 
      System.out.println(e); 
     } 
     Thread t = new Thread(); 
     t.start(); 
    } 

    public static void main(String[] args) { 
     new Zoom(); 
    } 

    @Override 
    public void run() { 
     while (true) {    
      PointerInfo pi = MouseInfo.getPointerInfo(); 
      Point p = pi.getLocation(); 
      int x = (int) p.getX(); 
      int y = (int) p.getY(); 

      Graphics g = wnd.getGraphics(); 
      Rectangle rect = new Rectangle(x, y, 150, 150); 
      BufferedImage img = r.createScreenCapture(rect); 
      g.drawImage(img, 0, 0, 250, 250, Color.white, this); 
     } 
    } 

} 

В этом выход не подходит, как предполагается, окно открывается нормально, но когда я наведите мышь над ним, он просто не масштабировании вверх .... enter image description here Как это изображение это printscreen, он не показывает указатель мыши, но он находится только в окне.

Так может кто-нибудь, пожалуйста, помогите мне.

+1

что вы собираетесь делать? Пожалуйста, просмотрите свой вопрос. – itshorty

ответ

0

Извините, ребята, но я узнал ответ, почему это произошло. Как и при инициализации класса потока в параметре, я должен был указать это, какой метод запуска должен быть запущен, поэтому инициализация должна была быть чем-то вроде этого ...

Thread t = new Thread(this) 
Смежные вопросы