我有一个带有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));
    }

}


我的问题是,移动窗口时边界不会更新。

最佳答案

由于面板的位置是相对于框架的,因此面板的边界不会改变(框架尺寸不会改变)。

尝试查看框架而不是面板的边界

10-06 13:46
查看更多