Como faço para que as imagens que este programa gera sejam impressas em uma window? eu tentei fazer criando um novo objeto window mas deu errado.
import java.applet.AppletStub;
import java.awt.*;
public
class ScreenShow extends java.applet.Applet implements Runnable,AppletStub {
int frame;
int delay;
Window janela;
Thread animator;
Dimension offDimension;
Image offImage;
Graphics offGraphics;
Image frames[];
/**
*inicializa parametros a serem usados na thread
*/
public void init() {
appletResize(1024,768);
String str = getParameter("fps");
int fps = (str != null) ? Integer.parseInt(str) : 10;
delay = (fps > 0) ? (1000 / fps) : 100;// delay no fps operador ternário
Toolkit t = Toolkit.getDefaultToolkit();
frames = new Image[33];//lembrar de colocar o array com o tamanho dos arquivos
for (int i = 1 ; i < 33 ; i++) {
frames[i-1] = t.getImage("c:/teste"+(i+1)+".gif");
}
}
/**
* Metodo chamado qnd a applet se torna visivel
* Cria a thread e começa
*/
public void start() {
animator = new Thread(this);
animator.start();
}
/**
* metodos chamados na thread qnd ela começa
* Faz a animação"
*/
public void run() {
// Remember the starting time
long tm = System.currentTimeMillis();
while (Thread.currentThread() == animator) {
// Display the next frame of animation.
repaint();
// Delay depending on how far we are behind.
try {
tm += delay;
Thread.sleep(Math.max(0, tm - System.currentTimeMillis()));
} catch (InterruptedException e) {
break;
}
// Advance the frame
frame++;
}
}
/**
* This method is called when the applet is no longer
* visible. Set the animator variable to null so that the
* thread will exit before displaying the next frame.
*/
public void stop() {
animator = null;
offImage = null;
offGraphics = null;
}
/**
* Update a frame of animation.
*/
public void update(Graphics g) {
Dimension d = size();
// Create the offscreen graphics context
if ((offGraphics == null)
|| (d.width != offDimension.width)
|| (d.height != offDimension.height)) {
offDimension = d;
offImage = createImage(d.width, d.height);
offGraphics = offImage.getGraphics();
}
// Erase the previous image
offGraphics.setColor(getBackground());
offGraphics.fillRect(0, 0, d.width, d.height);
offGraphics.setColor(Color.black);
// Paint the frame into the image
paintFrame(offGraphics);
// Paint the image onto the screen
g.drawImage(offImage,0,0, null);
}
/**
* Paint the previous frame (if any).
*/
public void paint(Graphics g) {
update(g);
}
/**
* Paint a frame of animation.
*/
public void paintFrame(Graphics g) {
g.drawImage(frames[frame % 10], 0, 0, null);//mudar aki tamanho da imagem impressa
}
public void appletResize(int width,int height) {
// TODO Auto-generated method stub
}
}
Cara… posta os código dentro da Tag Code …
Fica melhor para visualizarmos. …
Assim
Tá vendo como o resultado é bem melhor !!!
Assim vc corre o risco do pessoal nem ler seu codigo inteiro
Falow
T+
Cara… posta os código dentro da Tag Code …
Fica melhor para visualizarmos. …
Assim
Tá vendo como o resultado é bem melhor !!!
Assim vc corre o risco do pessoal nem ler seu codigo inteiro
Falow
T+
Como faço para que as imagens que este programa gera sejam impressas em uma window? eu tentei fazer criando um novo objeto window mas deu errado.
import java.applet.AppletStub;
import java.awt.*;
public
class ScreenShow extends java.applet.Applet implements Runnable,AppletStub {
int frame;
int delay;
Window janela;
Thread animator;
Dimension offDimension;
Image offImage;
Graphics offGraphics;
Image frames[];
/**
*inicializa parametros a serem usados na thread
*/
public void init() {
appletResize(1024,76;
String str = getParameter("fps");
int fps = (str != null) ? Integer.parseInt(str) : 10;
delay = (fps > 0) ? (1000 / fps) : 100;// delay no fps operador ternário
Toolkit t = Toolkit.getDefaultToolkit();
frames = new Image[33];//lembrar de colocar o array com o tamanho dos arquivos
for (int i = 1 ; i < 33 ; i++) {
frames[i-1] = t.getImage("c:/teste"+(i+1)+".gif");
}
}
/**
* Metodo chamado qnd a applet se torna visivel
* Cria a thread e começa
*/
public void start() {
animator = new Thread(this);
animator.start();
}
/**
* metodos chamados na thread qnd ela começa
* Faz a animação"
*/
public void run() {
// Remember the starting time
long tm = System.currentTimeMillis();
while (Thread.currentThread() == animator) {
// Display the next frame of animation.
repaint();
// Delay depending on how far we are behind.
try {
tm += delay;
Thread.sleep(Math.max(0, tm - System.currentTimeMillis()));
} catch (InterruptedException e) {
break;
}
// Advance the frame
frame++;
}
}
/**
* This method is called when the applet is no longer
* visible. Set the animator variable to null so that the
* thread will exit before displaying the next frame.
*/
public void stop() {
animator = null;
offImage = null;
offGraphics = null;
}
/**
* Update a frame of animation.
*/
public void update(Graphics g) {
Dimension d = size();
// Create the offscreen graphics context
if ((offGraphics == null)
|| (d.width != offDimension.width)
|| (d.height != offDimension.height)) {
offDimension = d;
offImage = createImage(d.width, d.height);
offGraphics = offImage.getGraphics();
}
// Erase the previous image
offGraphics.setColor(getBackground());
offGraphics.fillRect(0, 0, d.width, d.height);
offGraphics.setColor(Color.black);
// Paint the frame into the image
paintFrame(offGraphics);
// Paint the image onto the screen
g.drawImage(offImage,0,0, null);
}
/**
* Paint the previous frame (if any).
*/
public void paint(Graphics g) {
update(g);
}
/**
* Paint a frame of animation.
*/
public void paintFrame(Graphics g) {
g.drawImage(frames[frame % 10], 0, 0, null);//mudar aki tamanho da imagem impressa
}
public void appletResize(int width,int height) {
// TODO Auto-generated method stub
}
}
public void init() {
appletResize(1024,76;
Falta fechar um parenteses …
T+
bom … fiz algumas modificações … vê se é o que vc tava querendo …
[code]import javax.swing.JApplet;
public class OpenScreenShow extends JApplet {
ScreenShow sc = null;
public void init() {
sc = new ScreenShow(getParameter("fps"));
sc.setVisible(true);
}
public void start() {
sc.start();
}
public void stop() {
sc.stop();
}
}[/code]
[code]import java.awt.*;
import javax.swing.JFrame;
public class ScreenShow extends JFrame implements Runnable{
int frame;
int delay;
Thread animator;
Dimension offDimension;
Image offImage;
Graphics offGraphics;
Image frames[];
/**
* inicializa parametros a serem usados na thread
*/
public ScreenShow(String str) {
setSize(300, 300);
int fps = (str != null) ? Integer.parseInt(str) : 10;
delay = (fps > 0) ? (1000 / fps) : 100;// delay no fps operador
// ternário
Toolkit t = Toolkit.getDefaultToolkit();
frames = new Image[33];// lembrar de colocar o array com o tamanho dos
// arquivos
for (int i = 1; i < 33; i++) {
frames[i - 1] = t.getImage("c:/teste" + (i + 1) + ".gif");
}
}
/**
* Metodo chamado qnd a applet se torna visivel Cria a thread e começa
*/
public void start() {
animator = new Thread(this);
animator.start();
}
/**
* metodos chamados na thread qnd ela começa Faz a animação"
*/
public void run() {
// Remember the starting time
long tm = System.currentTimeMillis();
while (Thread.currentThread() == animator) {
// Display the next frame of animation.
repaint();
// Delay depending on how far we are behind.
try {
tm += delay;
Thread.sleep(Math.max(0, tm - System.currentTimeMillis()));
} catch (InterruptedException e) {
break;
}
// Advance the frame
frame++;
}
}
/**
* This method is called when the applet is no longer visible. Set the
* animator variable to null so that the thread will exit before displaying
* the next frame.
*/
public void stop() {
animator = null;
offImage = null;
offGraphics = null;
}
/**
* Update a frame of animation.
*/
public void update(Graphics g) {
Dimension d = size();
// Create the offscreen graphics context
if ((offGraphics == null) || (d.width != offDimension.width)
|| (d.height != offDimension.height)) {
offDimension = d;
offImage = createImage(d.width, d.height);
offGraphics = offImage.getGraphics();
}
// Erase the previous image
offGraphics.setColor(getBackground());
offGraphics.fillRect(0, 0, d.width, d.height);
offGraphics.setColor(Color.black);
// Paint the frame into the image
paintFrame(offGraphics);
// Paint the image onto the screen
g.drawImage(offImage, 100, 100, null);
}
/**
* Paint the previous frame (if any).
*/
public void paint(Graphics g) {
update(g);
}
/**
* Paint a frame of animation.
*/
public void paintFrame(Graphics g) {
g.drawImage(frames[frame % 10], 0, 0, null);// mudar aki tamanho da
// imagem impressa
}
}[/code]
flw…
Nossa kra eu nao vi direito ainda, mas testei agora e ta pegando, e tah ate mais rapido do q antes, BRIGADAO kra vlw msm!!!
![:smiley: :smiley:](https://www.guj.com.br/images/emoji/twitter/smiley.png?v=9)
bem o lado da janela ta funcionando, agora qnd mudo para algo superior a 10 da um
Exception in thread “Image Fetcher 0” java.lang.OutOfMemoryError: Java heap space
axo q tow com algum vazamento d memoria ow seila, vow da uma estudada nisso, d qlqr forma esse lance da janela me ajudo mto kra