그래서 Canvas를 확장 한 MainClass라는 클래스가 있습니다. 페인트 방법을 재정의하지 않고 채워진 사각형을 캔버스에 그려 보려고합니다. 그것을 할 수있는 방법이 있습니까 아니면 내가 페인트 방법을 재정의해야하고 거기에 그려 싶어요?JAVA - 확장 캔버스에서 그림 그리기
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JFrame;
public class MainClass extends Canvas {
MainClass()
{
JFrame MainWindow = new JFrame("Main Window");
MainWindow.setVisible(true);
MainWindow.setSize(500, 500);
MainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MainWindow.add(this);
}
public void paint(Graphics g)
{
super.paint(g);
}
public static void main(String[] args)
{
MainClass temp = new MainClass();
Graphics g = (Graphics2D)temp.getGraphics();
g.setColor(Color.red);
g.fillRect(0, 0, 400, 400);
temp.repaint();
}
}
아이디어는이 클래스가 있고 캔버스의 그래픽 개체를 가져 와서 직접 그릴 수 있습니다. 아니면 내게 어떤 위치에서 그림을 그리는 방법으로 도형과 물건을 전달할 생각이었습니다.
* "그 방법이 있습니까? 아니면 페인트 방법을 무시하고 그 위에 그려야합니다?"* 짧은 대답은 no입니다. – MadProgrammer
더 긴 대답은 [ 'BufferStrategy'] (http://docs.oracle.com/javase/tutorial/extra/fullscreen/bufferstrategy.html)에 설명되어 있지만 복잡한 작업을 추가하는 페인팅 프로세스를 제어해야합니다. ... – MadProgrammer