创建具有固定宽高比的自定义JComponent

时间:2014-07-31 16:33:30

标签: java swing layout-manager jcomponent aspect-ratio

作为项目的一部分,我有一个自定义JComponent,它实现了一个用户界面。这是一个相当奇怪的控制,涉及移动一组x-y点,但这不应该真的重要,因为它已经实现并且正常工作。

此组件的可用区域是正方形 - 任何多余的区域都是letterboxed。

如何告诉布局管理器我希望这个组件是方形的,布局管理器决定的大小是否合适?它不会破坏额外区域的功能,但它确实浪费了其他组件可以更好地使用的空间。

2 个答案:

答案 0 :(得分:2)

你只有三个旋钮告诉LayoutManager你的组件需要什么:

的getPreferredSize(); 的getMinimumSize(); 调用getMaximumSize();

请注意,并非所有LayoutManagers都尊重(尤其是后两者)这些提示。除此之外,使用布局中的组件的客户端还有更多选项,其中包含一些LayoutManagers(例如GridBagLayout),以提示是否以及如何调整控件的大小。

简而言之,返回一个合适的首选大小,并使用组件将其余部分留在布局中。

答案 1 :(得分:1)

这有点粗糙但可能是必需的。您可以根据用户将其更改为大小来重新调整大小。例如,如果用户将大小调整为500x600,则将其设置为500x500。