> Java > java지도 시간 > 외부 클래스에서 JPanel 너비와 높이를 정확하게 검색하는 방법은 무엇입니까?

외부 클래스에서 JPanel 너비와 높이를 정확하게 검색하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-12 13:06:10
원래의
294명이 탐색했습니다.

How to Accurately Retrieve JPanel Width and Height from an External Class?

외부 클래스에서 JPanel 너비 및 높이 검색

애플리케이션에서 별도의 클래스에서 JPanel의 너비와 높이에 액세스해야 하는 문제가 발생합니다. 클래스(직접). JPanel은 차원을 검색하는 메서드를 제공하지만 클래스 외부에서 호출하면 0을 반환합니다.

JPanel 인스턴스를 Rect 클래스에 전달

한 가지 해결 방법은 JPanel 인스턴스를 이동 클래스에 매개변수로 전달하는 것입니다. () 메서드는 Rect 클래스에 있습니다. 이는 JPanel의 차원에 대한 액세스를 제공합니다.

public class Rect {
    //... properties

    public void move(JPanel panel) {
        int jpWidth = panel.getWidth();
        int jpHeight = panel.getHeight();

        // rest of the movement logic using jpWidth and jpHeight
    }
}
로그인 후 복사

차원 개체 전달

또 다른 접근 방식은 JPanel의 차원 개체를 가져와서 move() 메서드에 전달하는 것입니다.

public void move(Dimension dimension) {
    int jpWidth = dimension.width;
    int jpHeight = dimension.height;

    // rest of the movement logic using jpWidth and jpHeight
}
로그인 후 복사

GamePanel 클래스 내에서 페인트()의 Dimension 개체를 계산할 수 있습니다. 메서드:

public class GamePanel extends JPanel implements Runnable {
    
    private Dimension dimension;

    // rest of the class

    public void paint(Graphics g) {
        super.paint(g);

        dimension = new Dimension(getWidth(), getHeight());

        // ...
    }
}
로그인 후 복사

그런 다음 차원 개체를 Rect 클래스에 전달합니다.

for(Rect rect:rect){
    rect.move(dimension);
}
로그인 후 복사

고려 사항

  • 필요한 경우 첫 번째 방법이 더 편리합니다. JPanel의 너비와 높이에 직접 액세스합니다.
  • 두 번째 방법은 계산이나 저장에 사용할 수 있는 차원 개체입니다.
  • 최적의 성능을 위해서는 차원 개체를 반복적으로 계산하지 마세요. 개인 변수를 사용하여 최신 값을 캐시하세요.

위 내용은 외부 클래스에서 JPanel 너비와 높이를 정확하게 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿