2014-12-10 1 views
1

축구 용 앱을 만들고 있습니다. 현재 6 개의 팀을 보유하고있는 9 개의 텍스트 영역이 있습니다. 각 텍스트 영역에 MouseListener을 첨부했습니다. 텍스트 영역을 클릭하면 각 팀이 그룹 형식으로 분리 된 새 창을 볼 수 있습니다.단일 MouseListener JTextArea에서 텍스트를 가져 오는 이벤트

텍스트 영역에서 텍스트를 가져 오는 데 문제가 있습니다. 각 개별 텍스트 영역에 MouseListener을 추가하여이 작업을 수행 할 수 있지만 이는 알고있는 한 자신을 반복하지 마십시오. 원칙을 위반합니다.

내가 포함했다 아래에있는 내 코드 : 내가 대신 9 가지 MouseListeners의 내 모든 텍스트 영역의 TableListener 개인 클래스를 사용하고자하는

gui.getTable1().addMouseListener(new tableListener()); 
gui.getTable2().addMouseListener(new tableListener()); 
gui.getTable3().addMouseListener(new tableListener()); 
gui.getTable4().addMouseListener(new tableListener()); 
gui.getTable5().addMouseListener(new tableListener()); 
gui.getTable6().addMouseListener(new tableListener()); 
gui.getTable7().addMouseListener(new tableListener()); 
gui.getTable8().addMouseListener(new tableListener()); 
gui.getTable9().addMouseListener(new tableListener()); 


public static class TableListener implements MouseListener { 

    @Override 
    public void mouseClicked(MouseEvent e) { 
     // TODO Auto-generated method stub 
    } 

    @Override 
    public void mouseEntered(MouseEvent e) { 
     // TODO Auto-generated method stub 
    } 

    @Override 
    public void mouseExited(MouseEvent e) { 
     // TODO Auto-generated method stub 
    } 

    @Override 
    public void mousePressed(MouseEvent e) { 
     // TODO Auto-generated method stub 
     //get text from text area and pass to new GUI 
    } 

    @Override 
    public void mouseReleased(MouseEvent e) { 
     // TODO Auto-generated method stub 
    } 
} 

. 나는 이것이 한 줄로 할 수 있다고 생각하지만 나는 어떻게 생각할 수 없다. 누군가 도와 주실 수 있습니까?

+0

DRY 원칙에 대해 1+. Java 코드 규칙을 수행하기 위해 클래스 이름을 수정했습니다. 클래스 이름은 대문자로 시작합니다. – dic19

답변

3

모든 텍스트 영역에 하나의 청취자 인스턴스를 첨부하고 e.getSource()를 사용하여 이벤트 소스 텍스트 영역을 가져옵니다.

관련 문제