当前位置:  技术问答>java相关

java初级问题

    来源: 互联网  发布时间:2015-01-07

    本文导语:  源代码如下: import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class TranslateTest extends Applet { Image img; private Point pressed=new Point(),lastTranslate=new Point(); public void init() { Image img=getImage(getCodeBase(),"pu...

源代码如下:
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class TranslateTest extends Applet
{
Image img;
private Point pressed=new Point(),lastTranslate=new Point();

public void init()
{
Image img=getImage(getCodeBase(),"pure.gif");
try
{
MediaTracker mt=new MediaTracker(this);
mt.addImage(img,0);
mt.waitForID(0);
}
catch(InterruptedException e)
{
e.printStackTrace();
}
addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
Point ioc=e.getPoint();
pressed.x=ioc.x-lastTranslate.x;
pressed.y=ioc.y-lastTranslate.y;
}
});
addMouseMotionListener(new MouseMotionAdapter()
{
public void mouseDragged(MouseEvent e)
{
Point ioc=e.getPoint();
Point translate=new Point(ioc.x-pressed.x,ioc.y-pressed.y);
Graphics g=getGraphics();
try
{
g.clearRect(0,0,getSize().width,getSize().height);
g.translate(translate.x,translate.y);
showStatus("Translate Graphics:"+translate);
g.drawImage(img,0,0,TranslateTest.this);
}
finally
{
g.dispose();
}
lastTranslate=translate;
}
});
}
public void paint(Graphics g)
{
g.drawImage(img,0,0,this);
}


错误提示如下:
D:jdk1.2test>javac TranslateTest.java
TranslateTest.java:43: Attempt to use a non-final variable img from a different
method. From enclosing blocks, only final local variables are available.
                                        g.drawImage(img,0,0,TranslateTest.this);

                                                    ^
1 error
那位高手能解释一下这个错误发生的原因,谢谢

|
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class TranslateTest extends Applet
{
    static Image img;
    private Point pressed=new Point(),lastTranslate=new Point();

    public void init()
    {
Image img=getImage(getCodeBase(),"pure.gif");
        try
        {
            MediaTracker mt=new MediaTracker(this);
            mt.addImage(img,0);

            mt.waitForID(0);
        }
        catch(InterruptedException e)
        {
            e.printStackTrace();
        }
        addMouseListener(new MouseAdapter()
        {
            public void mousePressed(MouseEvent e)
            {
                Point ioc=e.getPoint();
                pressed.x=ioc.x-lastTranslate.x;
                pressed.y=ioc.y-lastTranslate.y;
            }
        });
        addMouseMotionListener(new MouseMotionAdapter()
        {
            public void mouseDragged(MouseEvent e)
            {
                Point ioc=e.getPoint();
                Point translate=new Point(ioc.x-pressed.x,ioc.y-pressed.y);
                Graphics g=getGraphics();
                try
                {
                    g.clearRect(0,0,getSize().width,getSize().height);
                    g.translate(translate.x,translate.y);
                    showStatus("Translate Graphics:"+translate);
                    g.drawImage(TranslateTest.this.img,0,0,TranslateTest.this);
                }
                finally
                {
                    g.dispose();
                }
                lastTranslate=translate;
            }
        });
    }
    public void paint(Graphics g)
    {
if(img==null)
img = getImage(getCodeBase(),"pure.gif");
        g.drawImage(img,0,0,this);
    }
}

|
编译通过

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class TranslateTest extends Applet
{
    Image img;
    private Point pressed=new Point(),lastTranslate=new Point();

    public void init()
    {
        img=getImage(getCodeBase(),"pure.gif");
        try
        {
            MediaTracker mt=new MediaTracker(this);
            mt.addImage(img,0);
            mt.waitForID(0);
        }
        catch(InterruptedException e)
        {
            e.printStackTrace();
        }
        addMouseListener(new MouseAdapter()
        {
            public void mousePressed(MouseEvent e)
            {
                Point ioc=e.getPoint();
                pressed.x=ioc.x-lastTranslate.x;
                pressed.y=ioc.y-lastTranslate.y;
            }
        });
        addMouseMotionListener(new MouseMotionAdapter()
        {
            public void mouseDragged(MouseEvent e)
            {
                Point ioc=e.getPoint();
                Point translate=new Point(ioc.x-pressed.x,ioc.y-pressed.y);
                Graphics g=getGraphics();
                try
                {
                    g.clearRect(0,0,getSize().width,getSize().height);
                    g.translate(translate.x,translate.y);
                    showStatus("Translate Graphics:"+translate);
                    g.drawImage(img,0,0,TranslateTest.this);
                }
                finally
                {
                    g.dispose();
                }
                lastTranslate=translate;
            }
        });
    }
    public void paint(Graphics g)
    {
        g.drawImage(img,0,0,this);
    }



|
呵呵,你多写了几个字符:
Image img=getImage(getCodeBase(),"pure.gif");
我想应该是 img=getImage(getCodeBase(),"pure.gif");
吧。
错误的意思是img如果在内嵌类里使用,必须定义为final。也就是说应该类里,而不是函数init里。

    
 
 

您可能感兴趣的文章:

  • Java读写包括中文的txt文件时不同编码格式问题解决
  • 菜鸟的问题:java与java script 的异同??
  • java新手的问题,java高手帮忙...
  • 低级问题:.java文件交付用户怎么运行,难道也是DOS下:java xx.java?有没有.exe?
  • 请各位java高手几个java有关的问题?
  • java.sql.Date和java.uitl.Date的问题?
  • 问大哥大姐们个问题啊,小第编了自己的第一个JAVA问题。用JAVAC编译能通过啊!可是用JAVA不能执行啊!
  • 最入门级的java问题,如何运行HelloWorld.java
  • 请教一些JAVA的基本问题,初学JAVA有些迷糊,帮帮忙!总迷糊实在受不了了!
  • Linux下面的开发好的Java程序,如何部署到其他机器?开发好的Java图形程序,终端上能否用?等问题
  • 关于JAVA应用程序(Java Application)的deliver问题
  • 请Linux 和Java 的高手回答:java JDK1.3.1 在红旗Linux Desktop 2.4 的问题,一定给分。
  • 一个极其菜的问题:JAVA,VISUAL J++,JAVA SCRIPT,EJB,它们之间到底有什么关系,谢谢!
  • 我的Javac没有问题,但是java有问题,
  • 一个JAVA继承的问题(Thinking in JAVA里的一个例子)
  • 刚学习Java,请教关于Java的Application代码编写问题。
  • 我所学的是计算机,现在想学JAVA,对JAVA绝对是初学!!!可以交流的留下个地址。肯定给分,不过非完分后就是问题,问题,问题了;)有留E-mail至少1分
  • 两个非常简单的问题,给40分 (才学2天JAVA人的问题)
  • 问个简单的低级又很怪的问题,我在编译*.java的问题。
  • java学习的问题<问题解决立即结贴>?
  • 我是学pb的,有一个问题想请教各位java的朋友,j2ee平台是什么啊?如果要用这个平台的开发pb的话是否要学java??
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍
  • 我对JAVA一窍不通,可惜别人却给我一个Java的project,要我做一个安装程序,请问哪里有JAVA INSTALLER下载,而且我要不要安装java的sdk才能完成此项任务?
  • java命名空间java.security类keystore的类成员方法: getdefaulttype定义及介绍
  • 新年第一天,让我们讨论一下未来一年JAVA的发展趋势! 个人认为,JAVA将主要朝ERP和JAVA手机方面发展!
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getclasspath定义及介绍
  • 我想学Java,但不知道Java的实用的开发工具有那些,Java主要用在哪些方面,EJB到底是什么东西??
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: javaserializedobjectmimetype定义及介绍
  • redhat7.3下,java程序打印中文直接用java命令执行正常,用crontab执行java命令为乱码
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: javafilelistflavor定义及介绍
  • 各位学java的朋友,学java的未来是什么,你们学java都用来开发什么项目啊!来者给分!!
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getvmname定义及介绍
  • 请问java程序中的import为什么有的用java.….*,而有的又用java.….…,有什么区别吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3