Results 1 to 3 of 3
- 04-16-2009, 07:48 AM #1
Member
- Join Date
- Apr 2009
- Posts
- 6
- Rep Power
- 0
Convert THE APPLET CODE TO SWING USING JPANEL
THIS CODE IS USED TO CREATE FIRE EFFECT PLS IF SOMEONE CAN CONVERT IT TO SWING IT EXTENDS APPLET PLS DO IT USING JPANEL
//package fire;
import java.awt.*;
import java.awt.image.BufferedImage;
public class fire1 extends java.applet.Applet implements Runnable {
boolean first=true;
int ROWS = 100;
int COLS = 100;
int HIDDEN = 4;
int ROWS_SEED = 4;
int ROWS_RESEED = 48;
int MAX_SEED =8;
int PALETTE_SIZE = 64;
int COOLING_LIMIT = 32;
int COOLING_ROWS = 42;
int COOLING_FACTOR = 0;
java.awt.Color palette[] = new java.awt.Color[PALETTE_SIZE];
byte Buffer[],Buffer2[];
String message,textfont;
int textsize,textX,textY;
Color textcolor;
BufferedImage offScrImage=null;
Graphics offScrGC;
Dimension offScrSize;
Thread kicker=null;
// public String getAppletInfo() {
// return "Fire";
// }
//
// public String[][] getParameterInfo() {
// String[][] info = {
// {"coolingrows", "int", "number of rows to cool"},
// {"coolingfactor", "int", "cooling factor"},
// {"coolinglimit", "int", "cooling threshold"},
// {"soundtrack", "url", "background sound"},
// {"text", "String", "message"},
// {"textcolor", "String", "text color"},
// {"textfont", "String", "text font"},
// {"textsize", "int", "text size"}
// };
// return info;
// }
public void init() {
int r,i;
String aux;
// Set some constants
COLS = size().width;
ROWS = size().height + HIDDEN;
// Get parameters
aux=getParameter("coolinglimit");
if((aux!=null)&&(aux.endsWith("%"))) { aux=aux.substring(0,aux.length()-1); }
COOLING_LIMIT = (aux==null)?(int)(PALETTE_SIZE*0.5):(int)(PALETTE_ SIZE*(Integer.valueOf(aux).intValue())/100);
aux=getParameter("coolingrows");
if((aux!=null)&&(aux.endsWith("%"))) { aux=aux.substring(0,aux.length()-1); }
COOLING_ROWS = (aux==null)?(int)(ROWS*0.8):(int)(ROWS*(Integer.va lueOf(aux).intValue())/100);
aux=getParameter("coolingfactor");
COOLING_FACTOR= (aux==null)?2:(int)(Integer.valueOf(aux).intValue( ));
ROWS_RESEED = (int)(ROWS*0.96);
// Get text parameters
aux = getParameter("text");
message=(aux==null)?"":aux;
aux = getParameter("textfont");
textfont=(aux==null)?"TimesRoman":aux;
aux=getParameter("textsize");
textsize=(aux==null)?18:(Integer.valueOf(aux).intV alue());
aux=getParameter("textcolor");
textcolor=hexColor(aux,Color.white);
// Setup buffers;
Buffer = new byte[COLS*ROWS];
Buffer2 = new byte[COLS*ROWS];
// Setup palette
for(i=0; i<16; ++i)
palette[i]= new Color(16*i,0,0);
for(i=0; i<16; ++i)
palette[16+i] = new Color(255, 16*i, 0);
for(i=0; i<32; ++i)
palette[32+i] = new Color(255,255,8*i);
// Setup text
Font myFont=new Font(textfont, Font.BOLD, textsize);
FontMetrics myMetrix=getFontMetrics(myFont);
int textH=myMetrix.getHeight();
int textW=myMetrix.stringWidth(message);
textX=(int)((COLS-textW)/2);
textY=ROWS-HIDDEN-(int)((ROWS-HIDDEN-textH)/2)-myMetrix.getDescent();
setFont(myFont);
// Seed image
for(r=COLS*(ROWS-ROWS_SEED); r<(ROWS*COLS); ++r) {
Buffer[r]=(byte)(Math.random()*(PALETTE_SIZE-1));
}
}
void MainLoop() {
int r,a,i;
for(r=COLS+1;r<(COLS*(ROWS-1))-1;++r) {
a=Buffer[r-COLS-1]+Buffer[r-COLS]+Buffer[r-COLS+1]+Buffer[r-1]+Buffer[r+1]+
Buffer[r+COLS-1]+Buffer[r+COLS]+Buffer[r+COLS+1];
// a=(a>>3)%PALETTE_SIZE;
a=(a>>3);
// Cool flames
if(a<COOLING_LIMIT) {
if((r<COOLING_ROWS*COLS)&&(a>COOLING_FACTOR)) a-=COOLING_FACTOR;
}
Buffer2[r]=(byte)(a);
}
// Seed at base
for(r=COLS*(ROWS_RESEED);r<COLS*(ROWS);++r) {
a=Buffer2[r];
Buffer2[r]=(byte)((a-(Math.random()*MAX_SEED))%(PALETTE_SIZE*3000.1));
//Buffer2[r]=(byte)((a-(Math.random()*MAX_SEED))%PALETTE_SIZE);
}
// Scroll image
for(i=0;i<COLS*(ROWS-1);++i)
Buffer[i]=Buffer2[i+COLS];
}
public final synchronized void update(Graphics g) {
// Setup off-screen buffer
Dimension d=size();
if((offScrImage==null)||(d.width!=offScrSize.width )||(d.height!=offScrSize.height)) {
offScrImage=(BufferedImage) createImage(d.width,d.height);
offScrSize=d;
offScrGC=offScrImage.getGraphics();
offScrGC.setFont(getFont());
}
if (offScrGC!=null) {
offScrGC.fillRect(0,0,d.width,d.height);
paint(offScrGC);
g.drawImage(offScrImage,0,0,null);
}
}
public void paint(Graphics g) {
int a;
Color c;
// Do main loop
MainLoop();
// Copy buffer to off-screen buffer
for(int y=0;y<(ROWS-HIDDEN);++y)
for(int x=0;x<COLS;++x) {
a=Buffer[y*COLS+x];
a=a<0?-a:a; // Patch nasty bug
a=a<(PALETTE_SIZE-1)?(a):(PALETTE_SIZE-1);
c=palette[a];
try {
offScrGC.setColor(c);
offScrGC.drawLine(x,y,x+1,y);
} catch (Exception e) { }
}
try {
// Write text
offScrGC.setColor(textcolor);
offScrGC.drawString(message,textX,textY);
// Paint off-screen buffer
g.drawImage(offScrImage,0,0,this);
} catch (Exception e) { }
}
public void start() {
if (kicker==null) {
kicker=new Thread(this);
// kicker.setPriority(kicker.MAX_PRIORITY);
kicker.start();
}
}
public void stop() {
kicker=null;
}
public void run() {
while(kicker!=null) {
repaint();
try {kicker.sleep(15);} catch (InterruptedException e) {}
}
}
// Place fire bubble on click
public boolean mouseDown(java.awt.Event evt, int x, int y) {
int i;
i=x+y*COLS;
if(i>81) {
Buffer[i]=(byte)255;
Buffer[i-COLS]=(byte)255;
Buffer[i+COLS]=(byte)255;
Buffer[i-1]=(byte)255;
Buffer[i+1]=(byte)255;
}
return true;
}
public Color hexColor(String hex, Color std) {
try {
Integer rgb=new Integer(0);
hex.replace('#',' ');
hex.trim();
rgb=Integer.valueOf(hex,16);
return new Color(rgb.intValue());
} catch (Exception e) {
return std;
}
}
}
- 12-22-2011, 07:52 AM #2
Member
- Join Date
- Dec 2011
- Posts
- 1
- Rep Power
- 0
Re: Convert THE APPLET CODE TO SWING USING JPANEL
Please post html in which applet is embeded.
I want to see the parameter values.
Swing code is ready
- 12-22-2011, 09:16 AM #3
Moderator
- Join Date
- Feb 2009
- Location
- New Zealand
- Posts
- 4,546
- Rep Power
- 11
Re: Convert THE APPLET CODE TO SWING USING JPANEL
Java Code:/* * Permission to use, copy, modify and distribute this software and its * documentation without fee for NON-COMMERCIAL purposes is hereby granted * provided that this notice with a reference to the original source and * the author appears in all copies or derivatives of this software. * * THE AUTHOR MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF * THIS SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. THE AUTHOR SHALL NOT BE LIABLE FOR * ANY DAMAGES SUFFERED BY ANYBODY AS A RESULT OF USING, MODIFYING OR * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. */ import java.awt.*; import java.lang.*; /** * fire - A firelike display * Inspired by VangelisTeam's PC fire demo * * @version 1.0, 12/21/95 * @author <A HREF="http://www.data.net.mx/~jrodrig/">Javier Rodriguez</A> (jrodrig@data.net.mx) */
Similar Threads
-
how to convert SWING GUI into exe format
By santhosh_el in forum AWT / SwingReplies: 7Last Post: 04-04-2009, 12:36 PM -
help?! paint on top of swing components on JPanel
By beam2008 in forum AWT / SwingReplies: 1Last Post: 12-05-2008, 04:15 AM -
Convert to Applet
By Urgle in forum New To JavaReplies: 1Last Post: 11-12-2008, 01:15 PM -
how to draw x-y graph in Jpanel.--not in APPLET.
By vincent2001@gmail.com in forum New To JavaReplies: 2Last Post: 08-24-2008, 05:01 AM -
Convert a program to Applet
By carl in forum Java AppletsReplies: 2Last Post: 08-09-2007, 09:33 PM


LinkBack URL
About LinkBacks
Reply With Quote
Bookmarks