早教吧 育儿知识 作业答案 考试题库 百科 知识分享

初学者求助:currentImage.paintIcon(this,page,x,y)中的this是什么意思?是引用还是什么?这是整个程序.importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;publicclassDirectionPanelextendsJPanel{privatefinalintwid

题目详情
初学者求助:currentImage.paintIcon(this,page,x,y)中的this是什么意思?是引用还是什么?
这是整个程序.
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class DirectionPanel extends JPanel {
private final int width=300,height=200,jump=10,image_size=31;
private ImageIcon up,down,right,left,currentImage;
private int x,y;
public DirectionPanel()
{
addKeyListener(new DirectionListener());
x=width/2;
y=height/2;
up=new ImageIcon("up.jpg");
down=new ImageIcon("down.jpg");
left=new ImageIcon("left.jpg");
right=new ImageIcon("right.jpg");
currentImage=right;
setBackground(Color.black);
setPreferredSize(new Dimension(width,height));
setFocusable(true);
}
public void paintComponent(Graphics page)
{
super.paintComponent(page);
currentImage.paintIcon(this,page,x,y);
}
private class DirectionListener implements KeyListener
{
public void keyPressed(KeyEvent event)
{
switch(event.getKeyCode())
{
case KeyEvent.VK_UP:
currentImage=up;
y-=jump;
break;
case KeyEvent.VK_DOWN:
currentImage=down;
y+=jump;
break;
case KeyEvent.VK_LEFT:
currentImage=left;
x-=jump;
break;
case KeyEvent.VK_RIGHT:
currentImage=right;
x+=jump;
break;
}
repaint();
}
public void keyTyped(KeyEvent event){}
public void keyReleased(KeyEvent event){}
}
}
▼优质解答
答案和解析
this代表的就是类本身,也就是DirectionPanel
调用的函数currentImage.paintIcon 需要paint的目标(通俗点说就是将icon刷在哪里)
所以这里将panel自己作为参数传过去