serializable 类 DrawImage 未声明类型为 long 的静态终态 是啥意思
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了serializable 类 DrawImage 未声明类型为 long 的静态终态 是啥意思相关的知识,希望对你有一定的参考价值。
我的问题是这样的
import java.awt.*;
import java.applet.*;//导入applet包中的类
import java.awt.event.*;
public class DrawImage extends Applet implements MouseListener//实现MouseListener接口
Image[] image;
static int n=0;
static int total=12;//一共提供12张图片
public void init()
addMouseListener(this);//事件源注册监听器
setForeground(Color.red);
setFont(new Font("宋体",Font.BOLD,30));
image =new Image[12];
for (int i=0;i<12;i++)
image[i]=getImage(getCodeBase(),"images/"+i+".jpg");
public void paint(Graphics g)
g.drawString("众志成城,抗震救灾",60,30);//输出文字
g.drawImage(image[n%total], 5, 50, this);//输出图片
n++;
public void mouseClicked(MouseEvent me) //重写mouseClicked方法
repaint();//调用重绘方法
public void mouseEntered(MouseEvent me) //实现mouseEntered方法
public void mouseExited(MouseEvent me) //实现mouseExited方法
public void mousePressed(MouseEvent me) //实现mousePressed方法
public void mouseReleased(MouseEvent me) //实现mouseReleased方法
public class DrawImage extends Applet implements MouseListener中的DrawImage用ECLIPPSE出现serializable 类 DrawImage 未声明类型为 long 的静态终态的错误
那这样我应该怎么改啊?
在浏览器中显示载入JAVA小程序失败
我的html代码没错
只需要指定private static final long serialVersionUID =
后面的数字随便 长点比较好。。
因为不继承 serializable 类的数据类型或者类 无法在流中传递 (HTTP是无状态协议所以对象都是在流中传递)
JAVA本身90%的类全部实现了serializable 接口 参考技术A 加个
private static final long serialVersionUID = 3617859655330969141L
后面的数字随便写,只是作为一个serializable 的标志.浏览器不能载入的可能原因可能是浏览器本身禁掉了applet.换个浏览器比如firefox看看.IE7好象是禁止applet的.
JAVA Graphics类中drawImage方法怎么用
drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)
最后一个参数是填什么东西,不懂,API文档写的不清楚
1、先在eclipse中创建一个java工程文件,命名为UseFunction。
2、然后在src下创建demo包,在demo下创建MyClass类。
3、接着在MyClass类中创建一个函数。函数内容很简单,只是输出一条语句。
4、接着就是要在main函数中调用上一步创建的函数。
5、编辑好MyClass.java文件后,通过java应用程序的方式运行MyClass.java。
6、运行后,可以在控制台中看到输出了一条语句,说明成功调用了函数。
参考技术AGraphics有六个drawImage方法,我们用的最多的是 public abstract boolean drawImage(Image img, int x, int y,int width, int height,ImageObserver observer);
img是要加载的图像,x,y是指定绘制图像矩形左上角的位置,width是指定绘制图像矩形的宽,width是指定绘制图像矩形的高,observer是要绘制图像的容器。
因为Graphics是一个抽象类,所以我们一般是重写其它容器的paint方法,例如JPanel或者JFrame等。下面是一个具体的例子:
package konw.win;import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JPanel;
class MyGraphics extends JPanel
/**
*
*/
private static final long serialVersionUID = 1L;
public void paint(Graphics g)
Toolkit tool = this.getToolkit();
Image image = tool.getImage("image.jpg");
g.drawImage(image, 10, 10, image.getWidth(this),image.getHeight(this), this);
public class WinDrawImageTest
public static void main(String[] args)
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.add(new MyGraphics());
frame.setVisible(true);
参考技术B 最后一个添null就可以了,那是用来检测图片改变的“图片观察者”,实际中基本用不到。因为这个观察者类在java设计中有严重缺陷,会导致图片绘制不及时,所以图片更新的工作往往都是由开发者自己来做。本回答被提问者采纳 参考技术C drawImage你知道是画图了。准确地说,这个是异步画图(就是说,不同步),执行了之后,画图了,但是以后可能会有新的部分需要画(动画图的第二帧或者第一次只画一半),那么,当新的部分被画的时候,很可能是在另一个线程里画的,不是你调用drawImage的这个线程。
那么,你很可能会想得到“有新部分被画了”这个事件。ImageObserver 就是这类事件的一种接收器。只要是实现了ImageObserver这个接口的Object传进去就行了。具体的ImageObserver的imageUpdate方法,你可以直接刷新它的容器(因为容器内的图刷新了嘛,所以需要刷新容器的样子吧)。如果你肯定图是稳定的(好像BufferedImage就是)能一次画完的,可以直接传入null,表示不给它ImageObserver,不监听“有新部分被画了”这个事件 参考技术D 一般都填this
以上是关于serializable 类 DrawImage 未声明类型为 long 的静态终态 是啥意思的主要内容,如果未能解决你的问题,请参考以下文章