在Java GUI中旋转方形面板
我想知道是否有可能实现一个方形但旋转90度的GUI面板(可能是JPanel)。显然,将有一个顶层容器,其中包含该面板,从视觉上看,主面板是内部旋转的方形面板
更具体地说,我会将一个面板(称为“a”)划分为4个相等的方形子面板,并用jLabel填充这些子面板,我正在考虑使用GridLayout。最后,我会把A旋转90度,得到我想要的
从我阅读的其他类似问题来看,你似乎不能旋转JPanel本身,但你可以旋转其中包含的内容。这适用于我的情况吗?如果有人能指出,我将不胜感激。谢谢
# 1 楼答案
如果你只需要在JLabel上旋转文本,你可以使用Rotated Icon,那么你就不用担心旋转面板了
# 2 楼答案
是的,您必须让顶级容器(JPanel或其他容器)成为旋转内容的项目。实际上,你不是在旋转物品,而是在旋转物品的绘画
# 3 楼答案
查看java上的SwingHelper项目中的JXTransformer。网此类充当组件装饰器,允许您对组件应用任意仿射变换
# 4 楼答案
关键的事情似乎是在旋转图形上下文之后绘制组件。下面是一个例子:
附录1:正如@Atreys注释所示,旋转的组件是绘制的,但交互效果不佳。如果组件必须保持可用,则还应转换事件坐标。比较这个(相当)更复杂的example,镜像组件
附录2:如果你还需要变换鼠标坐标,这个example可能会有帮助
附录3:可选地,考虑^ {CD1>}检查的实例here。