Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.02.2020, 09:20   #1
Marta_20
Новичок
Джуниор
 
Регистрация: 23.02.2020
Сообщений: 1
По умолчанию Как вызвать параметр из другого класса (или переписать вызов в существующем, чтобы сохранялась выбранная область)

Всем привет! подскажите пожайлуста, как вызвать параметр из другого класса (или переписать вызов в существующем, чтобы сохранялась выбранная прямоугольная область).Суть программы- она делает скриншот выделенной области,но после выбора области сохраняет весь экран потому, что параметры прописаны для полного экрана.
Код:
public class SnapUtil {public static   String SnapAndSave(String note, File path)  throws IOException, AWTException {
    Robot robot = new Robot();
//  Dimension можно ли передать из ScreenCaptureRectangle  и как  заменить new Rectangle(screenSize)
//  На область которую выделям мышкой
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    BufferedImage screen = robot.createScreenCapture(new Rectangle(screenSize));
    //Вызов окна для выбора области из ScreenCaptureRectangle
    new ScreenCaptureRectangle(screen);
    Graphics g = screen.getGraphics();
    Font font = new Font("Times New Roman", Font.BOLD, 80);
    ImageIcon imgIcon = new ImageIcon();
    Image img = imgIcon.getImage();
    //Добавить комментарий
    g.drawImage(img, 0, 0, null);
    g.setColor(Color.RED);
    g.setFont(font);
    g.drawString(note, 30, 60);
    g.dispose();
    File defaultPath = (null == path ? FileSystemView.getFileSystemView().getHomeDirectory() : path);
    String format = "jpg";
    String filePath = defaultPath + File.separator + "ScreenShot" + Math.random()+3+ "." + format;
    File file = new File(filePath);
    ImageIO.write(screen, format, file);///
    return filePath;
}
}
, и класс ScreenCaptureRectangle
Код:
public class ScreenCaptureRectangle  {
    Rectangle captureRect;
    public ScreenCaptureRectangle(final BufferedImage screen) throws IOException, AWTException {
        Robot robot =new Robot();
        BufferedImage screenCopy = new BufferedImage(screen.getWidth(),
                screen.getHeight(), screen.getType());
        JLabel screenLabel = new JLabel(new ImageIcon(screenCopy));
        JScrollPane screenScroll = new JScrollPane(screenLabel);
        screenScroll.setPreferredSize(new Dimension(1500, 900));
        repaint(screen, screenCopy);
        screenLabel.repaint();
        screenLabel.addMouseMotionListener(new MouseMotionAdapter() {
            Point start = new Point();
            @Override
            public void mouseMoved(MouseEvent me) {
                start = me.getPoint();
                repaint(screen, screenCopy);
                screenLabel.repaint();
            }
            @Override
            public void mouseDragged(MouseEvent me) {
                Point end = me.getPoint();
                captureRect = new Rectangle(start, new Dimension(end.x - start.x, end.y
                        - start.y));
                repaint(screen, screenCopy);
                screenLabel.repaint();
            }
        });
        JOptionPane.showMessageDialog(null, screenScroll);
    }
    public void repaint(BufferedImage orig, BufferedImage copy) {
        Graphics2D g = copy.createGraphics();
        g.drawImage(orig, 0, 0, null);
        g.setColor(Color.RED);
        if (captureRect == null) {
            return;
        }
        g.draw(captureRect);
        g.setColor(new Color(25, 25, 23, 10));
        g.fill(captureRect);
        g.dispose();
    }
}
Marta_20 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Глобальная функция + приватные переменные + вызов из другого класса? chiffa Общие вопросы C/C++ 7 12.01.2018 23:46
Передача метода одного класса как параметр функции другого KemanSR Общие вопросы C/C++ 4 22.07.2015 21:20
Вызов функции из одного класса кнопкой из другого класса lexflax Qt и кроссплатформенное программирование С/С++ 1 12.12.2014 21:48
c# - вызвать метод другого класса alexusankov C# (си шарп) 4 29.12.2013 14:05
Как вызвать метод из другого класса в C# KobolD Помощь студентам 6 25.06.2010 14:12