2016-11-05 2 views
0

이클립스 콘솔이 아닌 스윙 윈도우 자체를 클릭하면 마우스 위치를 얻고 싶습니다. 누구든지 그렇게하는 법을 알 수 있습니까? 확실한 질문이라면 미안 해요, 초보자입니다. 미리 Thx.자바가 Gui를 클릭하면 마우스 위치가 됨

여기 코드가 있습니다. 나는 어떻게 든 조각을 여기에서 발견했다. 그러나 그것은 내가 원하는 것처럼 나를 정말로 도와주지 않는다.

package shapes; 
import java.awt.*; 
import java.awt.event.MouseAdapter; 
import java.awt.event.MouseEvent; 

import javax.swing.JFrame; 
import javax.swing.JPanel; 

public class mouse { 

public static void main(String[] args){ 

    JFrame frame = new JFrame(); 
    JPanel panel = new JPanel(); 

    frame.add(panel); 
    panel.addMouseListener(new MouseAdapter() { 


     public void mouseClicked(MouseEvent e) { 
      int x=e.getX(); 
      int y=e.getY(); 
      System.out.println(x+","+y); 
     } 

}); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setSize(200, 200); frame.setVisible(true); 




} 

} 
+0

당신이 말하는 "스윙 창 자체에 클릭에 마우스 위치를 얻을"당신을 스윙 윈도우에 * 표시하고 싶거나 포인터가 스윙 윈도우에있을 때 포인터의 좌표를 원한다는 것을 의미합니다. (* 포인터 *가 아니라 * 마우스 *라고 생각하면됩니다). –

+0

예. 죄송합니다. 포인터의 위치를 ​​의미했습니다. 내가 그것을 클릭 할 때마다 스윙 윈도우에 상대적인 포인터의 좌표를 원한다. 도와 주실 수 있습니까? –

+0

설명해 주셔서 감사합니다. 물론, 잠시만 기다려주세요. 나는 대답을 제출할 것입니다. –

답변

0

당신은 JLabel에 위치를 인쇄 할 수 있습니다이의

JLabel label = new JLabel(); 
panel.add(label); 
panel.setLayout(null); 
frame.add(panel); 
panel.addMouseListener(new MouseAdapter() { 
    public void mouseClicked(MouseEvent e) { 
     int x = e.getX(); 
     int y = e.getY(); 
     label.setText("X: "+x+" \t Y: "+y); // this sets the JLabel's text 
     label.setBounds(x, y, label.getText().length()*2, 20); 
    } 
}); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
frame.setSize(200, 200); 
frame.setVisible(true); 

결과 :

this is the result

+0

thx, 이건 정말 도움이 !! –

+0

@IanTwy 다음 upvote 및 답변을 수락하십시오. 그런 식으로 다른 사람들이이 질문을 발견하면이 대답의 작동을 알 수 있습니다. – ItamarG3

+0

나는 upvote하고 싶지만 명성이 15 이하이기 때문에 공개적으로 표시하지 않는다고 말합니다. –

0

PointerInfo 클래스를 확인하면 도움이됩니다.

+0

그는 JFrame에 표시하려고합니다. – ItamarG3

+2

스택 오버플로에서 정책은 링크가 대답에 충분하지 않다는 것입니다. 링크가 당신의 대답이라면 그것은 단지 코멘트 일 것입니다. –

관련 문제