2012-10-31 4 views
-1

큰 GUI 프로젝트에서 작업 중입니다. 복잡한 작업이 많이 끝났으며 코드의 구조를 변경할 수 없습니다. 복잡한 프로젝트이므로 SSE를 설명하거나 제공하기가 어렵지만 최선을 다할 것입니다.Java에서 자체 구현 된 mouseClicked 이벤트를 무시하는 방법

우리 프로젝트에서 어떤 사람들은 자신의 테이블을 구현했습니다. 테이블에있는 모든 셀은 JPanel 클래스를 확장하는 CellPanel이라는 클래스입니다. 그래서 모든 테이블 셀은 실제로 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는 라벨 및 아이콘을 포함하도록 설계되어 있다는 것입니다 : 그래서 이런 식으로 일을의 기회가있다. 그것은 항상 이런 식으로 사용되었습니다. 내부에 동적 콘텐츠가 없습니다. 하지만 이제 우리는 요구 사항을 가지고 있으며 ScrollPaneJList을 포함하도록이 셀 패널을 수정했습니다. 그러나이 JLists은 클릭 할 수 없습니다. 여러 항목을 스크롤하여 스크롤하려고하지만 왼쪽 클릭에 응답하지 않습니다. 그래서 위 코드의 if 문을 채워야한다고 생각합니다.

하지만 어떻게?

답변

0

귀하의 질문을 완전히 이해했는지 확실하지 않습니다. 귀하의 CellPanelCellPanel에 포함 된 JList에 도달하지 않도록 클릭 이벤트를 포착 한 것으로 알고 있습니다.

CellPanelmouseClick에있는 이벤트를 JList에 위임 할 수만 있다면 거기에 표시된대로 참조되어야합니다.