如何在Java Swing中检查当前窗口大小?

10

例如,窗口大小发生了变化(用户调整了它),如何获取当前的窗口大小?


如何获取当前窗口大小?你为什么认为你需要它?我已经编写了数百个GUI,很少需要获取父容器的大小(尤其不是在调整大小时)。 - Andrew Thompson
2
你如何处理框架的调整大小? - Giannis
3个回答

23
Rectangle r = frame.getBounds();
h = r.height;
w = r.width;

8
假设您有一个JFrame,在其中绘制界面:
Dimension size = frame.getBounds().getSize()

返回框架的尺寸。此外,您可以为框架添加一个调整大小的处理程序,以便在用户调整框架大小时捕获:

    class ResizeListener implements ComponentListener {

        public void componentHidden(ComponentEvent e) {}
        public void componentMoved(ComponentEvent e) {}
        public void componentShown(ComponentEvent e) {}

        public void componentResized(ComponentEvent e) {
            Dimension newSize = e.getComponent().getBounds().getSize();          
        }   
    }

    frame.addComponentListener(new ResizeListener());

3
如果您不覆盖大多数方法,我建议使用ComponentAdapter - Jan Vorcak

3

只需使用getSize()方法:javadoc


3
我会尽力做到最好。链接出现了404错误,请更新链接并完善你的答案,以免影响未来的查看。 getSize()方法是哪个类的? - Victor Moraes
1
@VictorMoraes 因为 OP 有一段时间不在,我已经更新了损坏的链接。 - pavjel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接