2013-10-12 2 views
1

repaint()을 사용하여 JPanel을 따라 이동하는 사각형이 있습니다. 사각형의 위치가 JPanel 외부의 위치에 도달하면 더 이상 보이지 않습니다. JPanel 외부에서 어떻게 보이게 할 수 있습니까?JPanel의 그래픽을 JPanel 외부에 표시

이 내 페인트 방법 :

public void paintComponent (Graphics g) { 
    g.setColor(Color.red); 
    g.fillRect(dist, 0, 10, 10); 
    dist++; 
} 

업데이트 :

나는 내가 GridBagLayout에를 사용하여 배치 된 JFrame의 여러 JPanel의가있다. JPanels는 거리의 차선을 나타내고 직사각형은 차를 나타냅니다. 사각형을 JPanel 외부에서 볼 수있게하는 이유는 차를 차선으로 바꾸는 것입니다. JPanel은 자동차의 첫 번째 위치를 설정하는 데 나에게 적합하다고 보였습니다.

이 문제에 대한 해결책이 더 있습니까?

+1

관련 없음 : ** 그림을 그리는 동안 구성 요소의 상태를 변경하지 마십시오 ... – kleopatra

답변

2

당신의 상태 :

는 내가 다시 칠 사용하여 JPanel을 따라 이동 사각형()를 가지고있다. 사각형의 위치가 JPanel 외부의 위치에 도달하면 더 이상 보이지 않습니다. JPanel 외부에서 어떻게 보이게 할 수 있습니까?

JPanel에서 그림을 그리는 경우 짧은 대답은 "할 수 없습니다"입니다.

더 긴 대답은 JPanel을 그려야하는 곳과 나머지 GUI가 어떻게 설정되어 있는지에 달려 있습니다.



편집
당신 지금 상태 :

나는 내가 GridBagLayout에를 사용하여 배치 된 JFrame의 여러 JPanel의가있다. JPanels는 거리의 차선을 나타내고 직사각형은 차를 나타냅니다. 사각형을 JPanel 외부에서 볼 수있게하는 이유는 차를 차선으로 바꾸는 것입니다. JPanel은 자동차의 첫 번째 위치를 설정하는 데 나에게 적합하다고 보였습니다.

내가 그랬던 것처럼 코드화한다면,이 지역의 JPanels는 자동차를 그려 넣지 않고 자동차를 거리에서 다른 층에 존재하는 스프라이트로 만들 것입니다. JLayeredPane. 이 JPanel이 불투명하지 않은 한 전체 맵을 포함하는 자체 JPanel에 존재할 수 있습니다. 그러면 어떤 방식 으로든 차를 움직일 수 있습니다.

+0

나머지 gui에 대한 세부 정보를 추가했습니다. – flec

+0

@flec : 편집 참조. –

2

앞서 말했듯이 당신이 그것을 차지하고 더 큰 영역을 원한다면 JPanel을 더 크게 만들거나 paintComponent를 부모 컴포넌트에 넣어야합니다.