사용자가 JPanel에서 그려지는 선을 마우스 오버 및/또는 마우스 오른쪽 버튼으로 클릭 할 수있는 응용 프로그램이 있습니다. 모든 동작을 처리 할 객체의 일부로 선을 구현할 것으로 기대하지만, 아래 그림에 표시된 선을 구현하는 방법에 대한 근본적인 질문이 있습니다. 첫째, 그림 :Java에서 사용자 정의 가능한 선 클래스를 처리하는 방법
내가 어떤 문제없이 라인 자체를 그릴 수 있지만, 현재 단지 부모 JPanel
에서 오버라이드 (override) paintComponent()
호출에서 수행되고있다. 나는이 문제를 처리하는 방법에 대한 아이디어의 초보 있습니다
public class ChassisLink extends JComponent implements MouseListener
{
//Rectangle to handle mouse-over and right-click for each segment?
public ChassisLink()
{
initializeLink();
}
private void initializeLink()
{
//Init stuff
}
@Override
public void paintComponent(Graphics g)
{
super.paintComponent(g);
//Paint the line(s)
}
//MouseListener events...
//When mouse-over on the line, display a tooltip
//When right clicking, display a different dialog
}
내가 이해하지 못하는 것 같아 문제는 마우스를 두었을하거나 포인트 확인을 클릭하는 방법입니다. 사각형을 사용하고 마우스가 현재 해당 사각형에 포함되어 있는지, 화살표의 삼각형 부분을 무시하는지 여부를 확인합니까? 나는 그것에 대해 매우 낙담합니다. 그런 다음 내 문제는 이러한 링크 개체를 섀시 개체가 포함 된 기존 JPanel 위에 표시하는 방법이됩니다. JLayeredPane
에 대한 후보로 들리지만 그 경로에 대한 확인은 무엇입니까?
어쨋거나, 입력하신 사람들이 나에게 줄 수있는 것에 감사드립니다. 다소 모호한 경우 추가 설명을 요청하십시오.