-1

私は大きなGuiプロジェクトに取り組んでいます。多くの複雑な作業が行われており、コードの構造を変更することはできません。複雑なプロジェクトなので、説明したり SSE を与えたりするのは難しいですが、最善を尽くします。

私たちのプロジェクトでは、何人かの人々が独自のテーブルを実装しました。テーブル内のすべてのセルは、クラスを拡張した CellPanel というJPanelクラスです。したがって、すべての表のセルはJPanels実際にはそうです。そして、これらのクレイジーな人たちは、約 400 行の独自の mouseClicked 関数を実装しました。だから私は皆のためにここに貼り付けているわけではありません:)しかし、そのmouseClicked方法は右クリックの場合にのみ機能します。だから私はこのようなことをするチャンスがあります:

public void mouseClicked(MouseEvent e) {

    DropTable.selectedColorMng(rowInTable);
    if(e.getButton()==MouseEvent.BUTTON1) {
        System.out.println("left click");
    }
    else{ 
        // 400 lines of code here
    }
}

ここでやりたいことは、これらの CellPanels がラベルとアイコンを含むように設計されていることです。いつもこんな感じで使われています。内部に動的コンテンツはありません。しかし、今は要件があり、これらの CellPanels を に含めるように変更JListしましたScrollPane。しかし、これらJListsはクリックできません。それらをスクロールして複数選択したいのですが、左クリックに反応しません。したがって、上記のコードの if ステートメント内に入力する必要があると思います。

しかし、どのように?

4

1 に答える 1

0

あなたの質問を完全に理解したかどうかはわかりません。クリックイベントをキャッチして、に含まれているにCellPanel到達しないことを理解しました。JListCellPanel

そのような場合は、そのイベントをに委任するだけで、そこに示されているようにmouseClick、そのイベントCellPanelJListの参照が必要です。

于 2012-10-31T10:15:22.477 に答える