我有一个带有JPanel的简单应用程序和一个Timer,用于在每一帧中打印面板的大小和位置。
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));
}
}
我的问题是,移动窗口时边界不会更新。
最佳答案
由于面板的位置是相对于框架的,因此面板的边界不会改变(框架尺寸不会改变)。
尝试查看框架而不是面板的边界