캔버스에 이미지가 있고 이미지의 특정 부분을 터치하면 pointerPressed() 메서드 내에서 새 Canvas를 시작하려고합니다.pointerPressed() 메소드에서 새 Canvas를 표시하는 방법은 무엇입니까?
가능합니까? 지금까지 나는 다음과 같은 짓을 :
protected void pointerPressed(int x, int y){
if ((x>=164 && x<=173)&&(y>=24 && y<=36)){
disp.setCurrent(new elementDetails());
}
}
을 다음과 같이 클래스입니다 : 내가 실행하면
//class to show detailed information of elements
class elementDetails extends Canvas{
private Image elmDtlImg;
public elementDetails(){
try{
elmDtlImg = Image.createImage("/details.jpg");
}
catch(IOException e){
System.out.println("Couldn't load Detailed Info image" + e.getMessage());
}
}
public void paint(Graphics g){
//set the drawing color to white
g.setGrayScale(255);
//draw a big white rectangle over the whole screen (over the previous screen)
g.fillRect(0, 0, getWidth(), getHeight());
g.drawImage(elmDtlImg, 0, 0, 20);
}
}
은 위의 코드 아무 일도 일어나지 않습니다. 현재 이미지가 캔버스에 표시하려고하는 새 이미지로 변경되지 않는다는 것을 의미합니다.
포인터가 눌린 후에도 응용 프로그램이 계속 실행됩니다. 그것은 충돌하지 않습니다. 그것은 저에게 이미지의 다른 부분의 좌표를 올바르게 보여줍니다. 내가 성취하고자하는 것은 그것입니다. 이미지의 특정 부분을 클릭하거나 터치하면 이전 캔버스 대신 새로운 캔버스를로드해야합니다.
귀하의 코드는 당신이 원하는 것을 할 것 같다 요소의 자세한 정보를 표시합니다. 너 해봤 니? –
위의 코드를 실행할 때 아무 일도 일어나지 않습니다 ... 현재 이미지가 캔버스에 표시하려고 시도하는 새 이미지로 변경되지 않는다는 것을 의미합니다. ( –
응용 프로그램이 pointerPressed 이벤트 이후에 계속 실행되고 있습니까? 그냥 그 시점에서 교착 상태 –