J帧以纵横比调整大小

时间:2011-03-27 14:35:24

标签: java swing

我使用带有组件的jFrame制作了游戏。有没有办法可以让JFrame更大,但使用方形方面,以便长度总是等于拖动时的宽度?

感谢任何帮助。

干杯

2 个答案:

答案 0 :(得分:3)

您可以实现ComponentListener并具有类似的内容

@Override
public void componentResized(ComponentEvent arg0) {
    Rectangle b = arg0.getComponent().getBounds();
    arg0.getComponent().setBounds(b.x, b.y, b.width, b.width);

}

并将其用于您的JFrame。唯一的事情是,使用JFrame,它不会引发此事件,直到鼠标被释放。如果要在拖动鼠标时查看更改,则必须使用JPanel并使用此ComponentListener而不是JFrame,并使用面板填充框架。

答案 1 :(得分:0)

您可以尝试这样的事情:

public void componentResized(ComponentEvent e) {
                System.out.println("i have changed size applying aspect ratio now.");

                setSize(getWidth(), getWidth());
                repaint();
            }

这有点不直观,因为在调整组件大小后调整大小。