Java(Swing):在调整窗口大小时查找组件的*screen*大小

Syn*_*r0r 8 java swing resize

当调整主JFrame的大小时,我需要找到一个组件的精确屏幕大小(以像素为单位).

我已经尝试了几件事,但却找不到一个简单的方法:它可能已经错过了一些明显的东西.

BBBBB JFRAME BORDER BBB
BZZZZZZZZZZZZZZZZZZZZZB
BAAAAAAAAAAAAAAAAAAAAAB
BCC1................DDB
BCCC................DDB
BCCC................DDB
BCCC................DDB
BCCC................2DB
BEEEEEEEEEEEEEEEEEEEEEB
BBBBBBBBBBBBBBBBBBBBBBB
Run Code Online (Sandbox Code Playgroud)

调整大小,如果用户使主JFrame更短(垂直)和更宽(水平),它可能会变成这样:

 BBBBBB JFRAME BORDER BBBBBB
 BZZZZZZZZZZZZZZZZZZZZZZZZZB
 BAAAAAAAAAAAAAAAAAAAAAAAAAB
 BCC1....................DDB
 BCCC....................2DB
 BEEEEEEEEEEEEEEEEEEEEEEEEEB
 BBBBBBBBBBBBBBBBBBBBBBBBBBB
Run Code Online (Sandbox Code Playgroud)

我想要的是在屏幕上找到由点指示的矩形区域的确切大小(以像素为单位).

我正在添加一个ComponentListener来获取调整大小的事件,这很好.

我遇到的问题是在Component上调用getWidth()/ getHeight()显然不会返回组件的屏幕大小,而是返回组件的实际大小(例如,您可以拥有比其组件更宽的JPanel) ).

任何提示最受欢迎.