2014-06-24 5 views
0

에서 마우스 클릭 이벤트의 위치를 ​​얻기 내가있어 이런 식으로 뭔가 :JButton의

public void actionPerformed(ActionEvent a) {  
    ((JButton)a.getSource()).setBackground(Color.red);    
} 

색상 변경 성공적으로,하지만 난 클릭 된 버튼에 따라 int 배열의 값을 변경해야 . JButton 배열에서 마우스를 클릭 한 위치의 X 및 Y 좌표를 어떻게 얻을 수 있습니까?

+2

대신 'Map'을 사용하거나 ['Action'] (http://docs.oracle.com/javase/tutorial/uiswing/misc/action.html)을 사용하면 다음과 같은 단일 작업 단위를 제공합니다. 버튼, 메뉴 항목 및 키 바인딩에 적용 할 수 있습니다 – MadProgrammer

+0

; 간단한 getX() 및 getY() 함수가 작동합니까? – user2837260

+0

@ user2837260 : 누를 JButton 구성 요소의 x 및 y 위치를 가져 오며 행 및 열 인덱스는 가져 오지 않습니다. –

답변

1

한 가지 방법 : JButton의 2D 배열을 사용하고 중첩 된 for 루프를 통해 배열을 반복하여 행과 열 값을 가져옵니다. 예를 들어 ...

int r = -1; 
int c = -1; 
for (int row = 0; row < buttons.length; row++) { 
    for (int col = 0; col < buttons[row].length; col++) { 
    if (buttons[row][col] == e.getSource()) { 
     r = row; 
     c = col; 
    } 
    } 
} 

편집 : (MadProgrammer에서 언급 한 바와 같이) 다른 옵션은 컬러에, 당신의 JButton 또는 행동을지도하는지도를 사용합니다.