Java 解释paintComponent()和drawImage()的功能以及它们是如何实现的?
我正在剖析这个2d游戏教程,我不清楚Java 解释paintComponent()和drawImage()的功能以及它们是如何实现的?,java,paintcomponent,drawimage,Java,Paintcomponent,Drawimage,我正在剖析这个2d游戏教程,我不清楚paintComponent()和drawImage()方法在这段代码中到底做了什么,为什么。有人能解释一下吗 public class Board extends JPanel { private final int B_WIDTH = 350; private final int B_HEIGHT = 350; private final int INITIAL_X = -40; private final int IN
paintComponent()
和drawImage()
方法在这段代码中到底做了什么,为什么。有人能解释一下吗
public class Board extends JPanel {
private final int B_WIDTH = 350;
private final int B_HEIGHT = 350;
private final int INITIAL_X = -40;
private final int INITIAL_Y = -40;
private final int INITIAL_DELAY = 100;
private final int PERIOD_INTERVAL = 25;
private Image star;
private Timer timer;
private int x, y;
public Board() {
initBoard();
}
private void loadImage() {
ImageIcon ii = new ImageIcon("star.png");
star = ii.getImage();
}
private void initBoard() {
setBackground(Color.BLACK);
setPreferredSize(new Dimension(B_WIDTH, B_HEIGHT));
setDoubleBuffered(true);
loadImage();
x = INITIAL_X;
y = INITIAL_Y;
timer = new Timer();
timer.scheduleAtFixedRate(new ScheduleTask(),
INITIAL_DELAY, PERIOD_INTERVAL);
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
drawStar(g);
}
private void drawStar(Graphics g) {
g.drawImage(star, x, y, this);
Toolkit.getDefaultToolkit().sync();
}
private class ScheduleTask extends TimerTask {
@Override
public void run() {
x += 1;
y += 1;
if (y > B_HEIGHT) {
y = INITIAL_Y;
x = INITIAL_X;
}
repaint();
}
}
以下是AWT和Swing中重绘操作的一个重要总结: 关于您所询问的方法的细节在这里,但我将首先从更高层次的文章开始
您看过文档了吗?我想您的顶部链接已断开。