JPanel.getBounds没有更新

时间:2014-09-10 21:03:38

标签: java swing

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

}   

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

1 个答案:

答案 0 :(得分:3)

由于面板位置相对于框架,面板的边界不会发生变化(框架尺寸不会改变)。

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