1

我正在使用 Java 开始我的旅程,并且正在玩 swing。我用JScrollPane制作了一些简单的JFrame ,我正在寻找一种方法来将我的框架限制为预设的最小和最大尺寸。我在网上搜索了setMaximumsetMinimum以及它们的错误程度,但我什么也没找到(除了一些奇怪的ComponentListener)。但是setMinimum工作正常(至少现在),但我无法让setMaximum工作。我怎样才能设置这样的约束?

编辑:
我所说的“除了一些奇怪的ComponentListener ”的意思是它可以让我调整框架的大小,然后再调整它的大小。我想要实现的是无形的界限,它可以防止框架走得更多。

EDIT2:
这个问题似乎与我的操作系统(即 OSX)有关,ComponentListener在 Windows 上运行良好。但是在 Mac 上,当我开始将窗口拖出时,会调用ComponentMoved并且只有当我释放鼠标按钮时才会调用ComponentResized。当我将代码从Resized复制到Moved时,首先,窗口在MaximumSize的几分之一秒内调整自身大小,然后调用 apropiet 代码,一切都很好,但这种闪烁远不能接受。我什至重载了paint(Graphics g)以首先重置大小,然后调用super.paint但结果相同。

4

1 回答 1

1

您可以将ComponentListener添加到您的框架并检查componentResized(ComponentEvent e)是否允许使用新的宽度和高度值,如果允许,您可以通过setSize.

于 2013-05-06T23:12:37.643 回答