Hi,
I am creating a ticker applet..hence i downloaded the source code from free
code website..
I made some changes but itz not compiling ..
There is a problem with inner class cnv which is used as canvas
Itz give following error..
Incompatible type for method. Can't convert Myscroller. cnv to
java.awt.Component.
pnl.add(canvas, "CENTER");
Method getSize() not found in inner class Myscroller. cnv.
offscreenImage = createImage(width - bS, canvas.getsize() +
canvas.getSize().height);
^
Source code is as follows
import java.applet.Applet;
import java.applet.AppletContext;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import java.util.*;
public class Myscroller extends baseApplet
implements Runnable, MouseMotionListener, MouseListener,
AdjustmentListener
{
/* member class not found */
class cnv {}
public void init()
{
super.init();
setLayout(null);
setSize(width, height);
pnl.setSize(width, height);
refreshrate = getParameterInt("refresh", 0);
parseChar = getParameterString("parseCharacter", ",");
if(refreshrate > 0)
refreshit = true;
if(getParameterString("Scrollbar",
"false").toLowerCase().equals("true"))
{
pnl.add(canvas, "WEST");
pnl.add(ranger, "EAST");
ranger.setBackground(getParameterColor("scrollbarcolor",
Color.lightGray));
} else
{
pnl.add(canvas, "CENTER");
}
pnl.setLayout(new BorderLayout());
if(getParameter("bg") != null)
bg = getImage(getDocumentBase(), getParameter("bg"));
for(int i = 0; getParameter("splash" + i) != null;)
splash[i] = getParameterString("splash" + i++, null);
splashColor = getParameterColor("splashColor", Color.black);
bS = getParameterInt("bordersize", 5);
canvas.setBounds(bS, bS, width - bS - bS, height - bS - bS);
canvas.setBackground(backgroundColor);
ranger.addMouseListener(this);
ranger.addMouseMotionListener(this);
canvas.addMouseListener(this);
canvas.addMouseMotionListener(this);
ranger.addAdjustmentListener(this);
speed = getParameterInt("scrollspeed", 50);
frame = getParameterString("frame", "_parent");
savedForeground = getParameterString("foregroundColor", "0x000000");
savedBackground = getParameterColor("backgroundColor", Color.cyan);
border = getParameterColor("borderColor", Color.white);
pnl.setForeground(foregroundColor);
pnl.setBackground(border);
ranger.setBlockIncrement(50);
add(pnl);
getParms();
offscreenImage = createImage(width - bS, canvas.getSize().height *
3);
savedImage = createImage(width - bS, canvas.getSize().height * 3);
offG = offscreenImage.getGraphics();
savedG = savedImage.getGraphics();
}
public void start()
{
if(timer == null)
{
timer = new Thread(this);
timer.start();
}
}
public void stop()
{
if(timer != null)
{
timer.stop();
timer = null;
}
}
public void run()
{
boolean stopIt = false;
String ss = null;
while(timer != null)
{
try
{
Thread.sleep(speed);
}
catch(InterruptedException _ex) { }
if(!loading && delayAtTopExists)
{
for(int i = 0; i < hash.size(); i++)
{
String s[] = (String[])hash.get(new Integer(i));
if(s[13] == null)
continue;
int q = (new Integer(s[14])).intValue();
int p = (new Integer(s[15])).intValue();
if(Ticks == (q + canvas.getSize().height) - p)
{
ss = s[13];
stopIt = true;
break;
}
stopIt = false;
}
}
if(loading)
{
canvas.splashScreen(canvas.getGraphics());
refreshScreen();
}
if(notStopped && !stopIt && !loading)
{
calcTicks();
repaint();
} else
if(stopIt && !waitDelay(ss))
{
stopIt = false;
calcTicks();
repaint();
}
if(Ticks == 10 && !loading)
showStatus(" ");
}
}
public boolean waitDelay(String s)
{
if(firstIn == 0)
{
firstIn = 1;
delayed = (new Integer(s)).intValue();
return true;
}
delayed--;
if(delayed == 0)
{
firstIn = 0;
return false;
} else
{
return true;
}
}
public void refreshScreen()
{
canvas.paintfirst(offG);
firstpass = false;
offscreenImage = createImage(width - bS, canvas.getsize() +
canvas.getSize().height);
savedImage = createImage(width - bS, canvas.getsize() +
canvas.getSize().height);
offG = offscreenImage.getGraphics();
savedG = savedImage.getGraphics();
canvas.paintfirst(offG);
ranger.setValues(0, 1, 0, canvas.getsize());
ranger.setBounds(pnl.getSize().width - bS - 1, bS + 2,
pnl.getSize().width - bS, pnl.getSize().height - bS - bS - 4);
ranger.setBlockIncrement(canvas.getsize() / 10);
}
public void calcTicks()
{
if(!notStopped && delayit)
return;
if(Ticks < canvas.getsize())
{
Ticks++;
} else
{
Ticks = 0;
if(refreshit && (refreshrate = refreshrate - 1) == 0)
{
updateEngine();
refreshrate = getParameterInt("refresh", 0);
}
canvas.resetImage();
delayit = true;
}
rangerValue = Ticks;
ranger.setValue(Ticks);
if(Ticks == 100)
showStatus("Free DJScroller at DecafJava.com");
if(Ticks == 400)
showStatus("Free DJScroller at DecafJava.com");
}
public void mouseClicked(MouseEvent e)
{
Object object = e.getSource();
if(object == canvas && checkInside(e))
{
URL pageURL = null;
if(!jvscript)
{
try
{
StringTokenizer tok = new StringTokenizer(UrlToGo, ">");
if(tok.countTokens() == 2)
{
UrlToGo = tok.nextToken().trim();
frame = tok.nextToken().trim();
}
pageURL = new URL(getDocumentBase(), UrlToGo);
}
catch(MalformedURLException _ex)
{
return;
}
AppletContext browser = getAppletContext();
browser.showDocument(pageURL, frame);
} else
{
jvscript = false;
String targ = null;
int q = 0;
String tst[] = new String[5];
StringTokenizer tok = new StringTokenizer(UrlToGo, "?");
if(tok.countTokens() >= 2)
{
UrlToGo = tok.nextToken().trim();
while(tok.hasMoreTokens())
tst[q++] = tok.nextToken().trim();
}
}
}
}
public void mouseReleased(MouseEvent mouseevent)
{
}
public void mouseExited(MouseEvent e)
{
notStopped = true;
}
public void mouseDragged(MouseEvent e)
{
Object object = e.getSource();
if(object == canvas)
{
int ypos = e.getY() - saveYpos;
saveYpos = e.getY();
if(ypos == 0)
return;
canvas.resetImage();
if(ypos < 0 && Ticks < savedcanlen)
Ticks = Ticks + 5;
else
if(Ticks > 5)
Ticks = Ticks - 5;
scrollTick = Ticks;
ranger.setValue(Ticks);
canvas.repaint();
}
}
public void mouseMoved(MouseEvent e)
{
saveTicks = Ticks;
saveYpos = 0;
Object object = e.getSource();
if(object == canvas)
if(checkInside(e))
{
setCursor(new Cursor(12));
StringTokenizer tok = new StringTokenizer(UrlToGo, ">");
if(tok.countTokens() == 2)
showStatus(tok.nextToken());
else
showStatus(UrlToGo);
} else
{
setCursor(new Cursor(0));
showStatus(" ");
}
}
public boolean checkInside(MouseEvent e)
{
int y = canvas.getSize().height - e.getY();
Rectangle rect = new Rectangle();
for(int i = 0; i < hash.size(); i++)
{
String s[] = (String[])hash.get(new Integer(i));
if(s[8] != null)
{
int q = (new Integer(s[9])).intValue();
rect.setBounds(0, y - q, canvas.getSize().width, q);
int pos = Ticks - (new Integer(s[8])).intValue();
if(rect.contains(0, pos))
{
UrlToGo = s[7];
if(s[7].toLowerCase().trim().startsWith("javascript"))
{
int a = s[7].indexOf(58);
UrlToGo = s[7].substring(a + 1,
s[7].length()).trim();
jvscript = true;
}
return true;
}
}
}
return false;
}
public void mouseEntered(MouseEvent e)
{
if(getParameterString("MouseOverStop",
"true").toLowerCase().equals("true"))
notStopped = false;
}
public void mousePressed(MouseEvent mouseevent)
{
}
public void adjustmentValueChanged(AdjustmentEvent e)
{
int diff = ranger.getValue() - Ticks;
canvas.resetImage();
Ticks = Ticks + diff;
scrollTick = Ticks;
ranger.setValue(Ticks);
canvas.repaint();
}
public String loadParagraph(String line)
{
int i = 0;
URLConnection urlconnection = null;
String data[] = new String[1000];
URL url = null;
try
{
url = new URL(getCodeBase(), line);
try
{
urlconnection = url.openConnection();
urlconnection.setUseCaches(false);
}
catch(IOException _ex)
{
System.out.println("ioexection");
}
}
catch(MalformedURLException _ex)
{
System.out.println("error");
return line;
}
try
{
InputStream is = urlconnection.getInputStream();
BufferedReader dis = new BufferedReader(new
InputStreamReader(is));
try
{
for(String s = dis.readLine(); s != null; s =
dis.readLine())
if(s.length() != 0)
data[i++] = s;
is.close();
}
catch(IOException _ex) { }
line = "";
for(int j = 0; j < i; j++)
line = line.concat(data[j]);
line = line.concat(" ");
}
catch(IOException _ex) { }
return line;
}
public void updateEngine()
{
getEngineParms();
getParms();
refreshScreen();
}
public void getParms()
{
int mttrack = 0;
int i = 0;
String save = new String();
StringTokenizer subtok = null;
StringTokenizer tok = null;
hash = new Hashtable();
for(; getParameter("data" + i) != null || i < engineParms.length;
i++)
{
if(loading)
showStatus("Initilizing DJScroller Applet Parameters..
Please wait");
String data[] = new String[17];
data[5] = savedForeground;
data[6] = "false";
data[12] = "Dialog";
data[16] = "true";
data[3] = "0";
if(getParameter("engine") == null)
tok = new StringTokenizer(getParameter("data" + i), "|");
else
tok = new StringTokenizer(engineParms[i], "|");
save = tok.nextToken();
if(tok.hasMoreTokens())
{
data[1] = tok.nextToken().trim();
if(data[1].startsWith("'"))
data[1] = data[1].substring(1, data[1].length() - 1);
if(data[1].startsWith("\""))
data[1] = data[1].substring(1, data[1].length() - 1);
}
subtok = new StringTokenizer(save, parseChar);
data[0] = subtok.nextToken().trim();
if(data[0].toLowerCase().equals("line"))
data[1] = " ";
if(data[0].toLowerCase().equals("para"))
{
data[1] = loadParagraph(data[1]);
data[0] = "text";
}
if(data[0].toLowerCase().equals("bg"))
{
data[10] = data[1];
mt.addImage(getImage(getDocumentBase(), data[1]),
mttrack++);
}
if(data[0].toLowerCase().equals("image"))
mt.addImage(getImage(getDocumentBase(), data[1]), mttrack);
try
{
while(subtok.hasMoreTokens())
{
String s = subtok.nextToken().trim();
if(s.equalsIgnoreCase("center") ||
s.equalsIgnoreCase("right"))
data[2] = s;
if(s.equalsIgnoreCase("bold") ||
s.equalsIgnoreCase("italic"))
data[3] = s;
if(s.equalsIgnoreCase("continue"))
data[6] = "true";
if(s.startsWith("fonttype"))
loadData(s, data, 12);
if(s.toLowerCase().startsWith("url"))
loadData(s, data, 7);
if(s.toLowerCase().startsWith("delayattop"))
loadData(s, data, 13);
if(s.toLowerCase().startsWith("fontsize"))
loadData(s, data, 4);
if(s.toLowerCase().startsWith("offset"))
loadData(s, data, 11);
if(s.toLowerCase().startsWith("color"))
loadData(s, data, 5);
if(s.toLowerCase().startsWith("underlinelink"))
loadData(s, data, 16);
}
}
catch(NoSuchElementException _ex)
{
System.out.println("Error in parsing line " + i);
}
Integer in = new Integer(i);
hash.put(in, data);
}
}
public void loadData(String s, String data[], int i)
{
int j;
for(j = 0; s.charAt(j) != '='; j++);
j++;
data[i] = s.substring(j, s.length()).trim();
}
public void paint(Graphics g)
{
canvas.repaint();
}
public djscroller()
{
pnl = new Panel();
canvas = new cnv();
mt = new MediaTracker(this);
scrollTick = 1;
notStopped = true;
loading = true;
logoDisplay = true;
jvscript = false;
firstpass = true;
delayit = false;
delayAtTopExists = false;
refreshit = false;
scrollFromCenter = false;
refreshed = false;
hash = new Hashtable();
splash = new String[10];
ranger = new Scrollbar(1, 0, 1, 0, 255);
}
static final boolean DEMO = true;
Panel pnl;
int pscroll;
cnv canvas;
MediaTracker mt;
Thread timer;
Image offscreenImage;
Image savedImage;
Image img;
Image bg;
Graphics offG;
Graphics savedG;
Graphics offI;
FontMetrics fm;
int tickMax;
int saveTicks;
int saveYpos;
int scrollTick;
int Ticks;
int speed;
int savedcanlen;
int firstIn;
int delayed;
int rangerValue;
int rangerOldValue;
int refreshrate;
int bS;
boolean notStopped;
boolean loading;
boolean logoDisplay;
boolean jvscript;
boolean firstpass;
boolean delayit;
boolean delayAtTopExists;
boolean refreshit;
boolean scrollFromCenter;
boolean refreshed;
Hashtable hash;
String savedForeground;
String frame;
String UrlToGo;
String splash[];
Color savedBackground;
Color border;
Color splashColor;
Scrollbar ranger;
String parseChar;
}
===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".