Мы пытаемся изменить существующую Java-программу, чтобы она подходила для слабовидящих, и одно из изменений, которое мы делаем, - это функция увеличения.
У нас есть код для увеличения изображения под мышью, но он влияет на весь экран, и мы хотим ограничить его только той программой Java, из которой он будет запускаться. Например. пользователь нажимает на меню доступности, затем увеличивает и все, что находится под его мышью, но только в окне приложения, увеличивается, а не все на всем экране.
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
class magnify extends JFrame {
// object
static magnify m;
// image
Image i;
// default constrcutor
magnify()
{
// create a frame
super("magnify");
// set size of frame
setSize(200, 220);
show();
// function to magnify the image
work();
}
// main function
public static void main(String args[])
{
// object of class
m = new magnify();
}
public void work()
{
try {
// create a robot
Robot r = new Robot();
// while the frame is visible
while (isVisible()) {
// get the position of mouse
Point p = MouseInfo.getPointerInfo().getLocation();
// create a screen capture around the mouse pointer
i = r.createScreenCapture(new Rectangle((int)p.getX() - 30,
(int)p.getY() - 30, 150, 150));
// repaint the conatiner
repaint();
}
// exit the program
System.exit(0);
}
catch (Exception e) {
System.err.println(e.getMessage());
}
}
// paint function
public void paint(Graphics g)
{
// draw the image
g.drawImage(i, 0, 0, 300, 300, this);
}
}
Это код, который мы используем в данный момент в другом сообщении онлайн. Окно приложения можно изменять по размеру экрана, так же, как и собственное приложение.
Спасибо за вашу помощь!