2014-10-19 17 views
0

主要目標:補充一下,我已經制作成一個JPanel p1,使他們可以是動畫,以在整個的JPanel p1移動並不會消失,一旦超過他們在創建的標籤的邊界幾ShapeIcons如何將ShapeIcons添加到沒有標籤的JPanel?

//下面是我把一個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的,但我有他們的動畫,並希望他們能夠漂浮在水面在整個小組中,現在,因爲我只知道如何將它們添加到p1通過JLabel,一旦超出標籤邊界,形狀消失。 也許有一種方法可以通過除JLabel以外的其他方法添加ShapeIcon?

+0

什麼是'ShapeIcons'? – MadProgrammer 2014-10-19 23:46:07

+0

類似於ImageIcon我猜想,除了使用Graphics2D,你可以使用矩形,圓形等創建一個形狀,並將它組合成一個形狀,(IE創建一個使用2圈的輪胎和矩形主體的車) – user2855405 2014-10-19 23:51:19

+0

「相似的」isn同樣的 - 在能夠提出準確的建議之前需要更多的上下文。但是,如果你可以將它應用到'JLabel',那麼它必須實現'Icon'接口,這意味着必須有一個'paintIcon(Component,Graphics,int,int)'方法... – MadProgrammer 2014-10-19 23:54:51

回答

2

如圖所示here,您可以渲染一個Icon並將其顯示在您的實現paintComponent()中。由於您的動畫表面不需要佈局,請擴展JComponent。每個Icon可以是embedded-resource或運行時結構,例如ColorIcon。在KineticModel,引用hereSimpleBalls,引用here中可以看到完整的示例。

2

一旦標籤邊界被超過,形狀消失。

你不應該玩標籤邊界。標籤的大小應該是形狀的大小。

我有他們的動畫,並希望他們能夠漂浮在整個面板上,

然後動畫應該通過面板上的改變標籤的位置來完成。

形狀消失

然後你需要關於檢查標籤的位置,面板的尺寸。對於水平移動,X位置加上標籤寬度不能超過面板的寬度。