Listing 3: xy.java
package sun.net.www.content.image;
import java.net.*;
import java.io.*;
import java.util.StringTokenizer;
import java.awt.*;
import java.awt.image.*;
public class xy extends ContentHandler
{
private Color colorchooser(int c)
{
switch(c){
case 0:
return (new Color(0,0,0));
case 1:
return (new Color(255,0,0));
case 2:
return (new Color(0,0,255));
case 3:
return (new Color(0,255,0));
case 4:
return (new Color(255,255,255));
default :
return (new Color(112,112,112));
}
}
public Object getContent(URLConnection URLconn)
{
String line="";
InputStream IS=null;
BufferedReader BR=null;
int W=0;
int H=0;
int c1=0;
int c2=0;
Color color1=null;
Color color2=null;
int[] RGB=new int[0];
int element=-1;
int X=0;
int Y=0;
try{
IS=URLconn.getInputStream();
BR=new BufferedReader(new InputStreamReader(IS));
while(line.trim().equals("")){line=BR.readLine();}
if(line!=null)
{
StringTokenizer ST=new StringTokenizer(line,"|");
W=Integer.valueOf(ST.nextToken());
H=Integer.valueOf(ST.nextToken());
RGB=new int[W*H+1];
}
else
{
System.out.println("Unknown file type - *.xy");
}
line=BR.readLine();
if(line!=null)
{
StringTokenizer ST=new StringTokenizer(line,"*");
c1=Integer.valueOf(ST.nextToken());
ST.nextToken();
c2=Integer.valueOf(ST.nextToken());
color1=colorchooser(c1);
color2=colorchooser(c2);
X=color1.getRGB();
Y=color2.getRGB();
}
else
{
System.out.println("Unknown file type - *.xy");
}
while((line=BR.readLine())!=null)
{
if(line.indexOf("<!--")==-1)
{
StringTokenizer ST=new StringTokenizer(line,"-");
int contor=Integer.valueOf(ST.nextToken());
String s=ST.nextToken().trim();
if(s.equalsIgnoreCase("x"))
for(int i=0;i<contor;i++)
RGB[++element]=X;
if(s.equalsIgnoreCase("y"))
for(int i=0;i<contor;i++)
RGB[++element]=Y;
if((!s.equalsIgnoreCase("x"))&&(!s.equalsIgnoreCase("y")))
{
System.out.println("Error...");
break;
}
}
}
BR.close();
}catch(IOException e)
{System.out.println(e.getMessage());}
MemoryImageSource mis=new MemoryImageSource(W,H,RGB,0,W);
return mis;
}
}
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|