2014-11-23 2 views
0

클래스 플레이어와 클래스가 있습니다.이 클래스에는 paint() 메서드가 있습니다. Player와 Enemies를 JFrame에 추가하고이 클래스의 paint() 메소드에서 그림을 변경하는 방법은 무엇입니까? 내 코드 결과 :이 클래스의 메소드 paint()에서 가져온 그림이 서로를 커버합니다. 어떻게 피할 수 있습니까?클래스를 JFrame에 추가합니다.

import java.awt.BorderLayout; 

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

public class RunGame { 

    public static void CreateFrame() 
    { 

     JFrame f = new JFrame("Shoot, player!"); 
     f.setLayout(new BorderLayout()); 
     f.setSize(1366, 764); 
     f.setVisible(true); 
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     f.add(new Player(),BorderLayout.CENTER); 
     f.add(new Enemies(),BorderLayout.CENTER); 
    } 
    public static void main(String[] args) { 
     CreateFrame(); 
    } 

} 
+0

나는 * 추측 * 할 것이고 작동하지 않는다고 말할 것입니다. 'Player' 혹은'Enemies'를 올리십시오; 적어도 우리가 작동하지 않는 것을보기에 충분할만큼. –

+0

* "이 클래스의 메소드 paint()에서 가져온 그림이 서로를 커버합니다. 어떻게 피할 수 있습니까?"* 서로 겹쳐지기를 원하나요? –

+4

코드에서 음란물이 제거되었습니다. 이 사이트는 성인뿐만 아니라 청소년이 사용하는 것과 같이 게시하지 마십시오. 당신의 문제에 관해서는 GUI 컴포넌트 클래스가 아닌, 플레이어와 적 ** 논리 ** 클래스를 만드는 것을 고려해보십시오. 프로그램의 로직 부분을 GUI 부분과 분리하는 것을 고려하십시오. 그런 다음 뷰 클래스 (GUI)에 JPanel의 paintComponent 메소드에서 스프라이트 또는 유사한 것을 그려 논리적 엔티티의 위치를 ​​표시하게하십시오. –

답변

2

난 당신이 중복 수 있도록이 같은

  • 만들기 플레이어와 적 논리적 클래스, 그리고 GUI 구성 요소 클래스를 고려하는 것이 좋습니다.
  • 프로그램의 로직 부분을 GUI 부분과 분리하거나, 최소한 모델 - 뷰 구조를 생성하거나,보다 나은 모델 - 컨트롤 - 뷰를 생성하십시오.
  • 뷰 클래스 (GUI)에 뷰에 표시되는 JPanel의 paintComponent 메소드에 이미지 스프라이트를 그려 논리적 엔티티의 위치를 ​​표시하도록하십시오.
관련 문제