如何在java swing中查看当前窗口大小?

J.O*_*sen 8 java swing

例如,窗口的大小已更改(用户调整大小),如何获取当前窗口大小?

Jan*_*cak 19

Rectangle r = frame.getBounds();
h = r.height;
w = r.width;
Run Code Online (Sandbox Code Playgroud)


wil*_*amg 7

假设您有一个JFrame,您在其中绘制您的界面:

Dimension size = frame.getBounds().getSize()
Run Code Online (Sandbox Code Playgroud)

返回框架的尺寸.此外,您可以为框架提供调整大小处理程序,以便在用户调整框架大小时捕获:

    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());
Run Code Online (Sandbox Code Playgroud)

  • 如果你不覆盖大多数方法,我会考虑使用[ComponentAdaper](http://docs.oracle.com/javase/1.4.2/docs/api/java/awt/event/ComponentAdapter.html)代替 (3认同)