作者yeahhey (神秘人)
看板java
标题[J2SE] 移动图片(applet vs japplet)
时间Thu May 19 01:02:55 2011
我想要做一个可以被键盘操控上下左右的图形
大概就是按上往上移 按左往左 ....
我继承Applet跟JApplet两种内容程式(extends 不同而已)
结果会不同
Applet 的结果 连续按键盘执行 显示出来就像是 画面清掉然後在新位置重画一样
JApplet 就好像只是把新图盖上旧图上面 没有做清画面的
可是我不懂的是 我都是利用repaint()来将移动作标後的图画出的工作
我的观念上是觉得paint()都会先清画面 可是跑出来结果却不如预期
/Applet 也找不太到 两者之间的比较 或是 对於我这问题方面的比较差异
网路搜寻也是((希望不会是我关键字打太烂 别鞭我ˊˋ
code如下面:
(就差在extends不同class= =结果就不同了ˊˋ,删了一些东西应该还能run)
public class im extends JApplet implements KeyListener
{
private int x=10, y=10;
private Image image1;
public void init()
{
addKeyListener(this);
setimage();
}
public void paint(Graphics g)
{
g.drawImage(image1,x,y,this);
}
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()==e.VK_UP)
{
y=y-10;
}
else if(e.getKeyCode()==KeyEvent.VK_DOWN )
{
y=y+10;
}
else if(e.getKeyCode()==KeyEvent.VK_LEFT)
{
x=x-10;
}
else if(e.getKeyCode()==KeyEvent.VK_RIGHT)
{
x=x+10;
}
repaint();
}
public void keyReleased(KeyEvent e)
{
}
public void keyTyped(KeyEvent e)
{
}
}
希望有大大可以题点我一下概念 像是两个class是不室友少甚麽method
或是根本 呼叫paint的程序不同 = =
((造成困扰我在删文... 感谢文有点长...
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.122.153
1F:→ tkcn:paint() 下面加一行 super.paint(g); 05/19 01:41
2F:→ yeahhey:我试试看 05/19 02:23
3F:→ yeahhey:加在drawimage上一行 背景变非白色 灰色之类的 且移动时 05/19 02:30
4F:→ yeahhey:会闪(快速盖跟画) 所以似乎不太行 我满好奇 repaint到底 05/19 02:32
5F:→ yeahhey:在这两CLASS有啥差or是paint有差= =? 05/19 02:35
6F:→ zzuwenwang:之前遇到画面会闪的问题 後来是画与背景色相同且一大的 05/23 20:22
7F:→ zzuwenwang:打错 一样大的方形来覆盖 05/23 20:24