Как сделать что бы нажимать можно было лишь на какую-то часть в JFrame? - Java

Узнай цену своей работы

Формулировка задачи:

Как сделать что бы нажимать можно было лишь на какую-то часть в JFrame? А за её пределами нельзя, пока она открыта.

Решение задачи: «Как сделать что бы нажимать можно было лишь на какую-то часть в JFrame?»

textual
Листинг программы
  1. import javax.swing.*;
  2. import java.awt.*;
  3.  
  4. public class Main implements Runnable {
  5.  
  6.     private Robot robot = new Robot();
  7.     private JFrame frame;
  8.     private Point p;
  9.     private boolean b = false;
  10.  
  11.     private Main() throws AWTException {
  12.         frame = new JFrame();
  13.         frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
  14.         frame.setUndecorated(true);
  15.         frame.setPreferredSize(new Dimension(640, 420));
  16.         frame.setAlwaysOnTop(true);
  17.         frame.setFocusable(true);
  18.         frame.pack();
  19.         frame.setLocationRelativeTo(null);
  20.         frame.setVisible(true);
  21.  
  22.     }
  23.  
  24.     public static void main(String[]args) {
  25.         try {
  26.             Main main =  new Main();
  27.             Thread thread = new Thread(main);
  28.             thread.start();
  29.         } catch (AWTException e) {
  30.             e.printStackTrace();
  31.         }
  32.     }
  33.     @Override
  34.     public void run() {
  35.         while (true) {
  36.             Point mousePos = MouseInfo.getPointerInfo().getLocation();
  37.             Rectangle bounds = frame.getBounds();
  38.             bounds.setLocation(frame.getLocationOnScreen());
  39.             if (!bounds.contains(mousePos)) {
  40.                 p = frame.getLocationOnScreen();
  41.                 robot.mouseMove(p.x * 2, p.y * 2);
  42.                 frame.setExtendedState(JFrame.NORMAL);
  43.             }
  44.  
  45.         }
  46.     }
  47. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы