カスタムオブジェクトをJLabelにドラッグアンドドロップしていて、転送プロセス中にオブジェクトを参照できます(ラベルStringを受信したオブジェクトtoStringに変更します)が、カスタムオブジェクトを実際にJLabelに格納する方法やビルドする方法がわかりません参照。
転送プロセス中にこれを達成するための最良の方法は何ですか?
これは、オブジェクトを受け取り、それを使用してテキストを設定する作業転送コードです(以前の回答のおかげで:ここ:
public boolean importData(TransferSupport support) {
boolean accept = false;
if (canImport(support)) {
try {
Transferable t = support.getTransferable();
Object value = t.getTransferData(PersonTransferable.PERSON_FLAVOR);
if (value instanceof Person) {
Component component = support.getComponent();
if (component instanceof JLabel) {
((JLabel)component).setText(((Person)value).toString());
//action here
}
}
} catch (Exception exp) {
exp.printStackTrace();
}
}
return accept;
}
JLabelには、保存したい特定のインスタンス変数があります。コンポーネント(JLabel)と値(カスタムオブジェクト)があるので、このリンクを作成できますか?
最悪のシナリオでは、ラベルごとにTransferHandlerを作成し、値を正確に参照する必要があります。とにかく、これはおそらくベストプラクティスですか?