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)
在特定点绘制图像