>Java >java지도 시간 >내 퍼즐 게임에 새 이미지를 추가한 후 내 JPanel이 업데이트되지 않는 이유는 무엇입니까?

내 퍼즐 게임에 새 이미지를 추가한 후 내 JPanel이 업데이트되지 않는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-30 15:26:12124검색

Why Doesn't My JPanel Update After Adding New Images in My Puzzle Game?

퍼즐 게임의 JPanel 업데이트 문제

퍼즐 게임에서 업데이트된 이미지를 추가했음에도 불구하고 JPanel이 업데이트되지 않는 문제가 발생합니다. 문제를 자세히 조사하고 해결책을 제시해 보겠습니다.

Img[]의 이미지를 수정한 후 addComponents 메서드가 호출되어 업데이트된 이미지를 JPanel에 추가하기 때문에 문제가 발생합니다. 그러나 이 메서드는 패널 다시 그리기를 호출하지 않고 구성 요소만 추가합니다.

JPanel이 올바르게 업데이트되도록 하려면 구성 요소를 수정한 후 명시적으로 다시 그리기 및 유효성 검사 메서드를 호출해야 합니다. 다시 그리기 방법은 렌더링 프로세스를 시작하고 유효성 검사는 레이아웃이 최신 상태이고 구성 요소에 적용되는지 확인합니다.

업데이트된 코드:

public void addComponents(Img[] im){
    this.removeAll();
    for(int i=0; i<16; i++){
        im[i].addActionListener(this);
        im[i].setPreferredSize(new Dimension(53,53));
        add(im[i]);
    }
    this.validate();
    this.repaint();
}

추가 고려 사항:

코드에서는 JButton을 이미지를 그리는 데 적합하지 않은 Img 클래스입니다. 사용자 정의 구성 요소를 그리려면 JPanel 클래스를 확장하는 것이 좋습니다. 또는 JLabel을 사용하여 이미지를 표시할 수 있습니다.

또한 이미지를 섞을 때 올바른 이미지가 나타날 수도 있습니다. 이를 방지하려면 이미지를 무작위로 섞고 JPanel에 추가하기 전에 올바른 위치에 있는지 확인할 수 있습니다.

대체 접근 방식:

다음을 사용하는 대신 별도의 이미지인 경우 단일 이미지를 타일로 분할하여 JPanel에 추가할 수도 있습니다. 이렇게 하면 여러 이미지를 관리할 필요가 없고 업데이트 프로세스가 단순화됩니다.

위 내용은 내 퍼즐 게임에 새 이미지를 추가한 후 내 JPanel이 업데이트되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.