,你有一個JPanel
和JLabel
我有這個問題要解決,你必須克隆JLabel
與拖放和地方JLabel
滴上創建一個JPanel
克隆JLabel
。首先我想問的是,如果可以在匿名類如偵聽器中實現Cloneable
接口到JLabel
,所以我不必編寫自己的類來擴展JLabel
並實現Cloneable
。我知道如何通過轉移「text」屬性將JLabel
拖放到JTextField
,但我不知道如何克隆JLabel
到JPanel
。Java的拖放和Cloneable的
回答
實現Cloneable
接口不太可能在這方面取得任何有益效果。在Effective Java, Second Edition中,作者概述了中的克隆對象的變幻莫測。第11項:明智地重寫克隆。
Drag and Drop傳輸數據,而不是容器。因爲String
是不可變的,所以根本沒有理由複製String
。對於可變數據,複製構造函數或工廠方法更有意義。
由於JLabel
不是用戶可編輯的,它可能是DnD的意外目標,儘管它是possible。或者,您可以在運行時使用容器的add()
方法添加suitable component,然後使用validate()
和repaint()
。
可編輯?這不是你的意思:-) – kleopatra 2012-07-29 07:49:53
@kleopatra:我不確定。標籤的文本是編程式的可變的,但用戶不能在原位編輯內容。例如,'JTable'可能會使用'JLabel'進行渲染,但使用'JTextField'進行編輯。我不認爲要瞄準一個標籤,但我希望你的洞察力。請根據需要毫不猶豫地編輯答案。 – trashgod 2012-07-29 10:18:52
我們正在談論拖動,如果我正確理解OP(問題有點多雲:-)。我認爲沿着財產transferHandler的行,類似於http://stackoverflow.com/questions/9486118/java-drag-drop-imageicon-from-jlabel-on-panel-1-to-jlabel-on-panel- 2但具有文本屬性而不是圖標屬性。如果是這樣,它的文本可以拖到任何具有文本屬性的組件上,而不受具有可編輯性概念的組件的影響。雖然可能是錯的。 – kleopatra 2012-07-29 10:38:44
- 1. Java拖放和netbeans
- 2. Java接口擴展Cloneable的
- 3. Java拖放
- 4. Java SWT:拖/放
- 5. Flex拖放和拖放
- 6. Cloneable的行爲
- 7. 使用java拖放和識別位置
- 8. UIscrollview和拖放
- 9. 拖放和jQuery
- 10. 拖拽,縮放和UIView的
- 11. Flex拖放和放置
- 12. 組合拖放和縮放
- 13. 在java中拖放圖像
- 14. java - wicket - 拖放(wicket-dnd)
- 15. 在硒中拖放java
- 16. Java拖放不起作用
- 17. 與拖放和簡單的GridView拖放重新排序
- 18. 行爲JVM與Cloneable的類
- 19. JQuery和SVG拖放
- 20. 拖放jQuery和PHP
- 21. 的Java /擺動:拖放用繩子
- 22. 的Java FX FROP拖放問題
- 23. 的Java Swing - 拖放文本drawString之
- 24. jQuery的拖放
- 25. JQuery的拖放
- 26. 的Android拖放
- 27. jQuery的拖放
- 28. jQuery的拖放
- 29. Java庫的拖放和圖繪製支持
- 30. 拖和拖放文件夾中的內容(和子目錄)
'如果可以在匿名類(如偵聽器)中爲JLabel實現Cloeable接口,那麼我不必編寫自己的類來擴展JLabel並實現Cloneable'。通過做一個匿名類,你已經寫了你自己的類...它只是你只是沒有命名它 – SJuan76 2012-07-28 08:52:11
如果可以這樣做,我會:label.addSomething(new Cloneable(){...} ); – user1189571 2012-07-28 08:54:03
不!沒有!沒有!和一千不! – SJuan76 2012-07-28 08:58:01