主要目标:将我制作的一些ShapeIcons添加到JPanel p1
中,以便动画可以在整个JPanel p1
中移动并且不会消失它们超出了创建标签的范围。
//下面是我将一个shapeIcon转换为标签,以便将其添加到Jpanel p1
final MoveableShape clock = new Clock(20,10, SHAPE_WIDTH);
final ShapeIcon clockIcon = new ShapeIcon(clock, ICON_WIDTH, ICON_HEIGHT);
final JLabel label3 = new JLabel(clockIcon);
...
p1.add(label3)
我的所有形状都添加到JPanel中,但是我让它们动画化并希望它们能够在整个面板中浮动,因为我只知道如何通过JLabel将它们添加到p1
中,一旦超过标签边界,形状就会消失。
也许有办法通过JLabel以外的东西添加ShapeIcon?
答案 0 :(得分:2)
如图所示here,您可以呈现Icon
并将其显示在paintComponent()
的实施中。由于动画表面不需要布局,请扩展JComponent
。每个Icon
可以是embedded-resource
或运行时构造,例如ColorIcon
。完整示例见KineticModel
,引用here和SimpleBalls
,引用here。
答案 1 :(得分:2)
一旦超过标签边界,形状就会消失。
你不应该玩标签边界。标签的大小应该是形状的大小。
我让它们动画,并希望它们能够在整个面板中浮动,
然后应该通过更改面板上标签的位置来完成动画。
形状消失
然后,您需要检查标签相对于面板大小的位置。这是为了水平移动,X位置加上标签宽度不能超过面板的宽度。