Обработка или Java: получить позицию окна?

Я пишу скетч в Processing, и мне любопытно, как я могу получить положение окна ОС, в котором живет скетч. Если я использую getPosition() (часть java.awt), я получаю только положение окна просмотра в окне.


person Wray Bowling    schedule 15.12.2012    source источник


Ответы (1)


Вы можете использовать getLocationOnScreen(), унаследованный от java.awt.Component, но сначала вам нужно убедиться, что апплет isShowing():

void draw(){
  if(frame.isShowing()) println(frame.getLocationOnScreen());
}

или немного более графически:

void draw(){
  if(frame.isShowing()) {
    java.awt.Point pt = frame.getLocationOnScreen();
    background(255);
    rectMode(CENTER);
    rect(map(pt.x,0,displayWidth,0,width),//use screenWidth instead of displayWidth in Processing 1.5.1 or older
         map(pt.y,0,displayHeight,0,height),//use screenHeight instead of displayHeight in Processing 1.5.1 or older
         10,10);
  }
}

куда

Frame frame = ( (PSurfaceAWT.SmoothCanvas) ((PSurfaceAWT)surface).getNative()).getFrame();

(Для других средств визуализации, таких как P2D или FX2D, проверьте этот ответ)

person George Profenza    schedule 16.12.2012
comment
в классе PApplet нет метода с именем isShowing() - person ; 24.02.2021
comment
@Yeppii хорошее замечание! Благодарю вас ! Эти методы принадлежат фрейму. Я обновил ответ выше - person George Profenza; 24.02.2021