어떻게하면 Rectangle 객체의 외곽선을 페인트하기 위해 재정의 된 paint() 메서드를 얻을 수 있는지 궁금합니다. 문제는 Rectangle 객체의 크기와 위치가 임의적이어서 paint 메서드에 Rectangle이 그려지는 위치와 위치를 나타내는 코드를 포함 할 수 없다는 것입니다. 그래서 어떻게 든 페인트 (그래픽 g) 메서드에 의해 읽고 그린 수있는 뭔가 Rectangle 개체를 캐스팅 할 수있는 방법이 궁금하다? 당신의 도움에 미리 감사드립니다.Java의 paint() 메소드에 Rectangle 객체를 보내는 방법
답변
java.awt.Graphics
에는 drawRect
방법이 있습니다. 해당 매개 변수는 Rectangle
개체의 멤버와 일치합니다.
g.drawRect(r.getX(), r.getY(), r.getWidth(), r.getHeight());
정말 고맙습니다. 귀하의 반응은 많은 도움이되었습니다! g.drawRect 대신 g.draw (Rectangle)를 사용했습니다. 그것은 매우 잘 작동했는데 이제는 충돌 감지가 작동하지 않는 이유를 알 수 있습니다. 직사각형이 모든 곳에 있습니다. 다시 한 번 고마워. 좋은이. –
클래스가 코드의 다른 부분에서 사각형을 요청할 수 있어야합니다.
public interface RectangleProvider {
Rectangle getRectangle();
}
public MyPanel extendeds JPAnel {
private final RectangleProvider _provider;
public MyPanel(RectangleProvider provider) {
_provider = provider;
}
public void paintComponent(Graphics g) {
Rectangle r = _provider.getRectangle();
// ...
}
}
이렇게하면 모양이 무엇인지 결정하는 코드가 생깁니다. 그런 다음 필요에 따라 구성 요소에 액세스 할 수 있고 페인팅 작업을 기반으로 할 수 있습니다.
답장을 보내 주셔서 감사합니다. Mat (아래)의 조언과 관련하여 조언을 사용했고 내 직사각형을 페인트 할 수 있었고 궁극적으로 충돌 감지가 작동하지 않는 이유를 알 수있었습니다. 답장을 보내 주셔서 대단히 감사합니다. 당신 없이는 할 수 없었습니다. 좋은 친구가 되라. –
@DillonChaffey : 귀하를 도와 준 모든 답변에 대해 최대 득표를하고 단일 최상의 답을 "수락"하십시오. –
Rectangle는 Shape 인터페이스를 구현하고 Graphics2D 객체로 직접 칠할 수 있습니다.이 메서드는 JComponent의 paintComponent
메서드 (및 페인트 메서드이지만이 메서드는 사용하지 않는 것이 좋습니다.)에 전달됩니다. 따라서 쉽게 도형을 그릴 수 있습니다.
// in your JPanel or JComponent extended class
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
g2.draw(myRectangle); // assuming that this holds the Rectangle object
//...
}
이 답변을 받아 들여야합니다. 그것은 절대적으로 맞습니다. :-) +1 – rubixibuc
- 1. Java의 Paint 메서드
- 2. yii에서 메소드에 매개 변수를 보내는 방법
- 3. Java의 @Override 메소드에 주석을 달아야합니까?
- 4. Socket.io JavaScript 객체를 보내는 방법
- 5. 서버에 JSON 객체를 보내는 방법
- 6. JAVA의 액션 클래스에서 JSON 객체를 만드는 방법
- 7. 비슷한 기능을 Java의 여러 메소드에 추가하려면 어떻게합니까?
- 8. Java의 WADL 파일에서 메소드에 액세스하는 방법은 무엇입니까?
- 9. java의 모든 메소드에 Class.forname ("com.mysql.jdbc.Driver")을 써야합니까?
- 10. Rectangle 클래스
- 11. ios : NSNotification을 통해 UIInterfaceOrientation 객체를 보내는 방법
- 12. 정적 객체를 'PropertyChanged'에 대한 이벤트로 보내는 방법
- 13. 팝업을 열고 JSON 객체를 보내는 방법
- 14. Json 객체를 사용하여 resposne을 보내는 방법
- 15. 소켓을 통해 이미지 객체를 보내는 방법 ...?
- 16. WPF Rectangle ImageSource
- 17. NSNotification에서 객체를 보내는 방법은 무엇입니까?
- 18. 자바 스크립트에서 액션 메소드에 매개 변수를 보내는 방법
- 19. generator.yml에 정의 된 메소드에 요청 객체를 table_method로 전달하는 방법
- 20. 타입 객체를 일반적인 메소드에 전달할 수 있습니까?
- 21. MVC 아약스 호출로 - 컨트롤러 메소드에 객체를 전달하지
- 22. AndEngine Rectangle 클래스에서 glColorPointer를 구현하는 방법
- 23. EJB 컨테이너에서 Java의 웹 컨테이너로 알림을 보내는 방법
- 24. Java의 PlayFramework 컨트롤러 1.2.x에서 자바 스크립트를 다시 보내는 방법
- 25. Android Paint PorterDuff.Mode.CLEAR
- 26. 내장 Rectangle 대신 내 자신의 Rectangle 구조체를 사용하십시오.
- 27. Windows phone draw rectangle
- 28. WPF Shape Rectangle Binding
- 29. VB.net의 ListView Selection Rectangle
- 30. Raphael Rectangle Border
임의로 무엇을 의미합니까? 직사각형의 치수와 위치를 포함하는 코드에 몇 가지 변수가 있으며 페인트가 호출 될 때마다 (예 : repaint()) 선을 그립니다. – Bergi