1

私はあなたが持っている場所を解決するためにこの問題を抱えておりJPanel、ドラッグアンドドロップでクローンを作成し、ドロップされた場所にクローンを作成するJLabel必要があります。最初に聞きたいのは、リスナーのような匿名クラスにインターフェイスを実装できるかどうかです。そのため、を拡張して実装する独自のクラスを作成する必要はありません。「テキスト」プロパティを転送してにドラッグアンドドロップする方法は知っていますが、にクローンする方法がわかりません。JLabelJLabelJPanelJLabelCloneableJLabelJLabelCloneableJLabelJTextFieldJLabelJPanel

4

1 に答える 1

1

このコンテキストでは、インターフェースを実装してCloneableも有益な効果が得られる可能性は低いです。著者は、Effective Java, Second Editionの項目 11: 慎重にクローンをオーバーライドする でオブジェクトのクローン作成の気まぐれについて概説しています。

ドラッグ アンド ドロップは、コンテナではなくデータを転送します。Stringは不変であるため、 a を複製する理由はまったくありませんString。変更可能なデータの場合は、コピー コンストラクターまたはファクトリ メソッドの方が適しています。

ユーザーが編集できないためJLabel、可能性はありますが、DnD の予期しないターゲットになる可能性があります。または、コンテナーのメソッドを使用して実行時に適切なコンポーネントを追加し、その後にとを追加することもできます。add()validate()repaint()

于 2012-07-29T01:56:58.583 に答える