たとえば、内部に 3 つの Jpanel を含む Jpanel(コンテナ) があるとします。それらは JPanel ArrayList にあります。ここで、マウスが押されたパネルとマウスが離されたパネルを特定できるようにしたいと考えています。このようにして、配列リスト内のパネルを並べ替え、新しい順序でコンテナーに戻すことができます。
現在、スワップで機能するコードがありますが、問題はどのパネルがスワップされているかを判断することです。押されたときにコンテナ内の startIndex がそのインデックスに設定され、マウスが離されたときに endIndex が割り当てられる内側のパネルにアクション リスナーが追加されました。
@Override
public void mousePressed(MouseEvent e) {
con.startIndex = (this);
}
@Override
public void mouseReleased(MouseEvent e) {
con.endIndex = (this);
con.swap();
}
しかし、マウスが押されたのと同じパネルと常に交換しようとします。誰かアイデアはありますか?
public void swap() {
//This swap code works for the two numbers it's given
System.out.println("start swapping");
System.out.println(startSwapIndex + " with " + endSwapIndex);
if(startSwapIndex != endSwapIndex){
SpecPanel start = this.getSpecPanel(startSwapIndex);
SpecPanel end = this.getSpecPanel(endSwapIndex);
panels.set(endSwapIndex, start);
panels.set(startSwapIndex, end);
removeAllSpecPanels();
addAllSpecPanels();
System.out.println("swap complete");
}
}
ありがとう。