Re: Fading effect
Andrew Thompson ha scritto:
lando wrote:
Andrew Thompson ha scritto:
..
Thanks and sorry for my bad English....
[quoted text clipped - 10 lines]
** <http://www.physci.org/codes/sscce.html>
Thanks to see my post ,..but at this moment I am in a complete loop !
So as in loop is my web page !
I 've to reset and restart everything.
...then I cannot show you the complete documentation you need...
I can only say this code below give "access denied " also with files in
the same folder of .class file.
public class Fadera extends JApplet {
[quoted text clipped - 17 lines]
}
The code below (very the same !...)
My web interface to this forum might be deleting
the code you post, but - I'm sorry - I do not *see*
your code. The only code I see on this thread, is
that posted by Knute.
Please link to your web page that has the
applet. From that page, link to the *exact*
code being used for the applet (please link
directly to the Java source file).
(As an aside, I have not tried Knute's code, but
am confident he knows what needs to be done,
have you tried Knute's code?)
Knute's code works very fine as application ,this is why I'm trying
to do an applet version,...without results.
Locally the images are read , but "repaint" doesn't render
them.(certanly is a my applet error).
On the web page the images get access denied....
My web page >>>> http://digilander.libero.it/landodgl/Fadera.html
and applet source below >>>
import java.awt.*;
import java.io.*;
import java.awt.event.*;
import java.awt.image.*;
import java.awt.geom.*;
import java.awt.font.*;
import javax.swing.*;
import javax.imageio.*;
import java.net.*;
public class Fadera extends JApplet {
final BufferedImage[] images = new BufferedImage[4];
volatile BufferedImage first,next;
volatile AlphaComposite comp1 =
AlphaComposite.getInstance(AlphaComposite.SRC_OVER,1.0f);
volatile AlphaComposite comp2 =
AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.0f);
private Thread timerThread;
private volatile boolean noStopRequested;
private boolean paused;
private final Object pauseLock = new Object();
private void printThreadName(String prefix) {
String name = Thread.currentThread().getName();
System.out.println(prefix + name);
}
public void init() {
String s[] = { "pic_1h.jpg", "pic_2h.jpg", "pic_3h.jpg",
"pic_4h.jpg"};
for ( int i = 0; i < images.length; i++ ) {
File f = new File(s[i]);
try {
// Read in a BufferedImage from a file.
images[i] = ImageIO.read(f);
} catch (IOException e) {
System.err.println("Error reading file: " + f);
System.exit(1);
}
}
setPreferredSize(new Dimension(
images[0].getWidth(),images[0].getHeight()));
System.out.println("comando startthread");
startThread() ;
}
private void startThread() {
paused = true;
noStopRequested = true;
// Use this inner class to hide the public run method
Runnable r = new Runnable() {
public void run() {
runWork();
}
};
timerThread = new Thread(r, "Timer");
timerThread.start();
printThreadName("startThread is ");
}
private void stopThread() {
noStopRequested = false;
timerThread.interrupt();
printThreadName("stopThread is ");
}
public void runWork() {
while (true) {
for (int i=0; i<images.length; i++) {
first = images[i];
if (i < images.length - 1)
next = images[i+1];
else
next = images[0];
for (int j=0; j<60; j++) {
comp1 = AlphaComposite.getInstance(
AlphaComposite.SRC_OVER,1.0f / (j + 1));
comp2 = AlphaComposite.getInstance(
AlphaComposite.SRC_OVER,(j + 1) / 60.0f);
System.out.println("lando runwork repaint");
repaint();
try {
Thread.sleep(50);
} catch (InterruptedException ie) { }
}
try {
Thread.sleep(1000);
} catch (InterruptedException ie) { }
}
}
}
private void setPaused(boolean newPauseState) {
synchronized ( pauseLock ) {
if ( paused != newPauseState ) {
paused = newPauseState;
pauseLock.notifyAll();
}
}
}
private void waitWhilePaused() throws InterruptedException {
synchronized ( pauseLock ) {
while ( paused ) {
pauseLock.wait();
}
}
}
public void start() {
setPaused(false);
printThreadName("start is ");
}
public void stop() {
setPaused(true);
printThreadName("stop is ");
}
public void paintComponent(Graphics g2D) {
Graphics2D g = (Graphics2D)g2D;
g.setComposite(comp1);
g.drawImage(first,0,0,null);
g.setComposite(comp2);
g.drawImage(next,0,0,null);
}
}