我有一个带有JPanel的简单应用程序,以及一个用于打印每个帧的面板大小和位置的计时器。
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class GetBoundsTest extends JPanel {
public GetBoundsTest() {
setSize(100, 100);
Timer t = new Timer(40, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(GetBoundsTest.this.getBounds());
}
});
t.start();
}
public static void main(String[] args) {
JFrame f = new JFrame();
f.add(new GetBoundsTest());
f.setVisible(true);
f.setBounds(new Rectangle(50, 50, 50, 50));
}
}
我遇到的问题是移动窗口时边界不会更新。
答案 0 :(得分:3)
由于面板位置相对于框架,面板的边界不会发生变化(框架尺寸不会改变)。
尝试查看框架的边界而不是面板