다른 클래스의 드로잉 메서드를 호출하고 JPanel에 다른 그래프를 그려서 드로잉 플레이트 (JPanel 또는 무언가)를 인수로 가져와야하므로, 내 드로잉 메서드에 전달 (하지만 내가 할 수 있는지 여부는 모르겠다 .... 여기에 또 다른 시도입니다 ...)Java2D를 사용하여 Graphics 객체에 간단한 선을 렌더링 할 수 없습니다.
여기 구현의 일부입니다.
public class class_diagram extends Object
{
private final int width = 60;
private final int height = 80;
private final int first_separate_line_distance= 30;
private final int second_separate_line_distance= 55;
private int left_up_x = 0;
private int left_up_y = 0;
public void setLeft_up(int left_up_x,int left_up_y)
{
this.left_up_x = left_up_x;
this.left_up_y = left_up_y;
}
//private Graphics to_draw ;
//private JPanel place_to_draw;
public class_diagram()
{
// instance variable "point to" the reference which was passed in.
}
@Override
//the parameters stands for the left-up point's coordinate.
public void draw(Graphics to_draw) {
// TODO Auto-generated method stub
System.out.println("Call draw method?\n");
to_draw.setColor(Color.BLACK);
to_draw.drawLine(31, 41, 131, 768);
}
}
를 클래스 정의와 '상기 묘화 방법 : 다음
난 클래스 class_diagram를 생성한다.
그리고 다른 클래스에서
:내가 그리기 메서드를 호출하고, 실제로 호출,에서 System.out.println이 때문에 ("? 방법을 그릴 전화 \ n"); 그리기 방법은 저에게 메시지를 보여줍니다.
그럼에도 불구하고 !!! 내 JPanel에 드로잉 ... 그것은 나를 썼다. 내가 노력했기 때문에 적어도 4-5 방법 ....
import java.awt.BorderLayout;
public class UML_Editor_13 extends JFrame {
private Edit_panel canvas = new Edit_panel();
public static void main(String[] args) {
UML_Editor_13 frame = new UML_Editor_13();
frame.setVisible(true);
Graphics m= frame.canvas.getGraphics();
Object n = new class_diagram();
n.draw(m);
}
}
누군가 가르쳐주세요 왜이 줄 "그래픽 m의 =의 frame.canvas.getGraphics();" 가 작동하지 않습니다 ... m이 캔버스를 참조하는 경우 이유는
to_draw.setColor (Color.BLACK); to_draw.drawLine (31, 41, 131, 768); // 작동하지 않았다 ...? ,
"그래서 인수로 (JPanel의 또는 뭔가를) 그리기 판을 수행해야하는 JPanel의 서로 다른 그래프를 다른 클래스의 드로잉 메서드를 호출하고 그릴 :
다른 방법은 내 요구 사항을 충족하기 위해 그것을 내 그림 그리기 방법으로 전달합니다. "
화면에 아무것도 표시되지 않습니까? 아니면 아무 것도 표시되지 않습니까? JPanel이 이미 검정색입니까, 아니면 회색입니까, 아니면 배경색이 무엇입니까? – jefflunt
JPanel의 배경색이 더 이상 바뀌지 않습니다. 흰색이 남았습니다 .... T - T. 아무 일도 일어나지 않았습니다. – Stallman