I';我正在制作一个Java Appet,它使图像淡入淡出,然后在小程序窗口的另一个位置再次显示

I';我正在制作一个Java Appet,它使图像淡入淡出,然后在小程序窗口的另一个位置再次显示,java,applet,Java,Applet,小程序工作正常,在显示图像和文本时,我希望图像在当前位置淡出,但在另一个位置重新出现,然后在同一位置重新加载 我还想淡出并移动测试 这是我到目前为止的代码,请原谅我,我是新手 import java.applet.*; import java.awt.*; import java.awt.image.*; import java.net.*; public class FadeImage extends Applet { Image img, faded; int level, sign;

小程序工作正常,在显示图像和文本时,我希望图像在当前位置淡出,但在另一个位置重新出现,然后在同一位置重新加载

我还想淡出并移动测试

这是我到目前为止的代码,请原谅我,我是新手

import java.applet.*;
import java.awt.*;
import java.awt.image.*;
import java.net.*;

public class FadeImage extends Applet {
Image   img, faded;
int level, sign;
MediaTracker tracker;
AlphaFilter f;
FilteredImageSource fis;
String  msg2 = "University of Utah Football";


public void init() {
   setBackground(Color.red);
   setForeground(Color.black);

   level = 0;
 sign =  15;
 tracker = new MediaTracker(this);
 try { 
   img = getImage(new URL(getDocumentBase(), "uofu.jpg"));
   tracker.addImage(img,0);
   tracker.waitForID(0); 
   }
 catch (Exception e) {
   e.printStackTrace();
   }
 f = new AlphaFilter();
 f.setLevel(level);
 fis = new FilteredImageSource(img.getSource(), f) ;

 FadeThread ft = new FadeThread();
 ft.delayedFading(this, 20); 
 ft.start();
 }

public void paint(Graphics g) {
   Font myFont = new Font("Times New Roman", Font.BOLD, 24);
   g.setFont(myFont);
   g.setColor(Color.red);
   g.drawString(msg2, 10, 465);
   if (faded != null) {
    g.drawImage(faded,0,0,this);

    Font myFont2 = new Font("Times New Roman", Font.BOLD, 33);
    g.setFont(myFont2);

   setBackground(Color.black);
   setForeground(Color.white);
       g.setColor(Color.white);
       g.drawString("Get Season tickets now!", 10, 490);
    }
 }

public void fadeIt() {

 Graphics g = this.getGraphics();
 level += sign;
 if (level < 0) {
    level=0; 
    sign = sign * -1;
    }
 if (level > 255) {
    level=255; 
    sign =  sign * -1;
  try {
    Thread.sleep(1000);
    }
  catch (Exception e) {}
    }
 f.setLevel(level);
 if (faded != null) faded.flush();
 faded = this.createImage(fis);
 tracker.addImage(faded,0);
 try { 
   tracker.waitForID(0); 
   }
 catch (Exception ex) {
   ex.printStackTrace();
   }
 repaint();
 }

 class FadeThread extends Thread {
 FadeImage fadeApplet;
 int delay; 

 public void delayedFading(FadeImage f, int delay) {
   this.fadeApplet = f;
   this.delay = delay;
   }

 public void run() {
   while (true) {
     try {
       sleep(delay);
       fadeApplet.fadeIt();
       } 
     catch (Exception e) {
       e.printStackTrace();
       }
     }
   }
 }

class AlphaFilter extends RGBImageFilter {
  private int level;

  public AlphaFilter() { 
    canFilterIndexColorModel = true;
    }

  public void setLevel(int lev) {
    level = lev;
    }

  public int filterRGB(int x, int y, int rgb) {
    int a = level * 0x01000000;
    return (rgb &   0x00ffffff) | a;
    }
  }
}
import java.applet.*;
导入java.awt.*;
导入java.awt.image.*;
导入java.net。*;
公共类FadeImage扩展小程序{
图像img,褪色;
整数级,符号;
媒体跟踪器;
α滤波器f;
filteredimagesourcefis;
String msg2=“犹他大学足球”;
公共void init(){
挫折地面(颜色:红色);
设置前景(颜色为黑色);
级别=0;
符号=15;
tracker=新的MediaTracker(本);
试试{
img=getImage(新的URL(getDocumentBase(),“uofu.jpg”);
tracker.addImage(img,0);
tracker.waitForID(0);
}
捕获(例外e){
e、 printStackTrace();
}
f=新的AlphaFilter();
f、 setLevel(level);
fis=新的过滤器尺寸源(img.getSource(),f);
FadeThread ft=新的FadeThread();
ft.延迟衰落(本,20);
ft.start();
}
公共空间涂料(图g){
Font myFont=新字体(“Times new Roman”,Font.BOLD,24);
g、 setFont(myFont);
g、 setColor(Color.red);
g、 抽绳(msg2,10465);
如果(褪色!=null){
g、 drawImage(褪色,0,0,此);
Font myFont2=新字体(“Times new Roman”,Font.BOLD,33);
g、 setFont(myFont2);
挫折背景(颜色:黑色);
设置前景(颜色:白色);
g、 setColor(Color.white);
g、 抽绳(“立即获取季票!”,10490);
}
}
公共空间法代特(){
Graphics g=this.getGraphics();
级别+=符号;
如果(级别<0){
级别=0;
符号=符号*-1;
}
如果(级别>255){
级别=255;
符号=符号*-1;
试一试{
睡眠(1000);
}
捕获(例外e){}
}
f、 setLevel(level);
如果(褪色!=null)褪色。刷新();
褪色=此.createImage(fis);
tracker.addImage(褪色,0);
试试{
tracker.waitForID(0);
}
捕获(例外情况除外){
例如printStackTrace();
}
重新油漆();
}
类FadeThread扩展线程{
FadeImage fadeApplet;
整数延迟;
公共无效延迟衰落(FadeImage f,int延迟){
此.fadeApplet=f;
延迟=延迟;
}
公开募捐{
while(true){
试一试{
睡眠(延迟);
fadeApplet.fadeIt();
} 
捕获(例外e){
e、 printStackTrace();
}
}
}
}
类AlphaFilter扩展了RGBImageFilter{
私有整数级;
公共AlphaFilter(){
canFilterIndexColorModel=true;
}
公共无效设置级别(int lev){
水平=lev;
}
公共整型过滤器rgb(整型x、整型y、整型rgb){
int a=等级*0x01000000;
返回(rgb&0x00ffffff)| a;
}
}
}

问题出在哪里?因此,到目前为止,您对自己尝试过的内容有很好的了解,但您需要确定您的具体问题是什么我正在成功地使jpg图像淡出,我想知道如何使它在不同的窗口坐标中重新出现。我希望看到图像在其原始位置淡出,然后在小程序查看器的x轴上的不同位置(右侧50个位置)启动。然后将其淡出并重新显示在原始位置。这有意义吗?使用
drawImage(图像img、int x、int y、ImageObserver obs)
在特定点绘制图像