早教吧作业答案频道 -->其他-->
初学者求助: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){}
}
}
这是整个程序.
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自己作为参数传过去
调用的函数currentImage.paintIcon 需要paint的目标(通俗点说就是将icon刷在哪里)
所以这里将panel自己作为参数传过去
看了初学者求助:currentIm...的网友还看了以下:
分子数和分子数密度的区别,两者有什么代数关系,在物理热学中用什么字母表示 2020-04-27 …
家中用什么燃料烧水做饭?燃烧过程中有什么现象?燃烧燃料是不是化学变化?为什么? 2020-05-16 …
简易酸碱灭火器中用什么装盐酸(要生活一点的答案)就是科学书上的制作简易酸碱灭火器的实验,有一个小瓶 2020-05-17 …
动词的第三人称单数用英语怎么说的,在小学教学中,用什么样的情景可以把这个知识点渗透?英语翻译知道了 2020-06-05 …
动词的第三人称单数,在小学英语教学中,用什么样的情景可以把这个知识点渗透? 2020-06-05 …
新概念三好简单啊,还用学么?贝莱以为新概念三很有用,但一看单词百分之九十都认识,请问还用背课文么? 2020-06-10 …
物理学中用什么物理量描述质点位置的变动?什么是位移.怎么样表示位移?位移和路程有什么区别?什么情况 2020-06-27 …
六安的初中用什么版本的教材?(九门课程都要)谢谢啦~六安初中用的教材(语文,数学,英语,物理,化学, 2020-11-12 …
生活中有哪些现象应用了‘光是沿直线传播’的原理?(3例)光在物理学中用什么小写字母表示?光在水中是沿 2020-11-28 …
测量仪器是科学探究的重要工具,不同的测量仪器有不同的用途,请观察下列四个实验,回答下列问题:(1)请 2020-11-29 …