上繪製所以,我有一個名爲MainClass類延伸畫布。我試圖讓我們在Canvas上繪製一個填充的矩形而不覆蓋paint方法。有沒有辦法做到這一點,或者我必須重寫繪畫方法,並把我想畫的所有?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();
}
}
想法是,我有這個類,我可以得到畫布的圖形對象,並直接繪製並重畫。或者,也許我正在考慮將形狀和物體傳遞給一種方法,以便在某個位置爲我繪畫。
*「有沒有辦法做到這一點,或者我必須重寫繪畫方法,並把所有我想畫在那裏?」*簡短的答案是否 – MadProgrammer 2014-10-06 23:02:04
更長的答案是,你需要使用[ 'BufferStrategy'(http://docs.oracle.com/javase/tutorial/extra/fullscreen/bufferstrategy.html),但這然後要求你把繪畫過程,這只是增加了複雜程度的控制... – MadProgrammer 2014-10-06 23:40:54