애플리케이션에서 별도의 클래스에서 JPanel의 너비와 높이에 액세스해야 하는 문제가 발생합니다. 클래스(직접). JPanel은 차원을 검색하는 메서드를 제공하지만 클래스 외부에서 호출하면 0을 반환합니다.
한 가지 해결 방법은 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 너비와 높이를 정확하게 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!