早教吧作业答案频道 -->其他-->
初学者求助: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...的网友还看了以下:
you must confirm that you are the owner of this e 2020-05-14 …
this is no point是什么意思?this的短语还有什么? 2020-05-14 …
翻译句经济英语第一句话,上调到overweight是什么意思Earlier this week, 2020-05-17 …
支援的援什么意思?1.引、牵;2.帮助、救助;3.引用2.有人拽的拽什么意思?1.拉;2.拖支援的 2020-06-27 …
VFP中,Grid1中的过程AfterRowColChange是什么意思,有什么作用?过程Afte 2020-07-19 …
有谁知道这句正则表达式什么意思this.className=this.className.repl 2020-07-23 …
日语里什么叫格助词1为什么助词里还分出来一种格助词到底什么叫格助词格助词里主格助词补格助词等又是什 2020-07-23 …
解释下这段JS代码是什么意思啊privatevoidgrdGzlxbItemDataBound(ob 2020-11-01 …
初学者求助:currentImage.paintIcon(this,page,x,y)中的this是 2020-11-11 …
c#this.Activated+=newEventHandler(Form1Activated); 2020-12-15 …