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".

Reply via email to