Avatar billede benzon Praktikant
13. maj 2002 - 13:51 Der er 4 kommentarer og
1 løsning

Piv hvorfor virker det her ikke ?

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.util.Calendar;
import java.util.StringTokenizer;

public class noteb extends Applet
    implements MouseMotionListener, MouseListener, Runnable
{

    public noteb()
    {
        release = "000710";
        happening = "";
        cellnumber = 0;
        numberOfParameters = 0;
        xCoord = 0;
        yCoord = 0;
        moveTextX = 1;
        positionX = 170;
        actualMonth = 0;
        actualDay = 0;
        cal = Calendar.getInstance();
        tempCal = Calendar.getInstance();
        isInBox = false;
    }

    public void init()
    {
        wareHouse = createImage(160, 190);
        offScreen = wareHouse.getGraphics();
        actualMonth = cal.get(2);
        actualDay = cal.get(5);
        addMouseMotionListener(this);
        addMouseListener(this);
        occationNumber = new int[42];
        int temp = 0;
        bg = getImage(getCodeBase(), "bg.gif");
        mark = getImage(getCodeBase(), "mark.gif");
        leftOn = getImage(getCodeBase(), "leftOn.gif");
        leftOff = getImage(getCodeBase(), "leftOff.gif");
        rightOn = getImage(getCodeBase(), "rightOn.gif");
        rightOff = getImage(getCodeBase(), "rightOff.gif");
        left = leftOff;
        right = rightOff;
        text = new Font("SansSerif", 0, 12);
        bold = new Font("SansSerif", 1, 14);
        fm = getFontMetrics(text);
        String test;
        for(number = "1"; (test = getParameter(number)) != null; number = Integer.toString(temp))
        {
            temp = Integer.valueOf(number).intValue();
            temp++;
        }

        parameter = new String[temp - 1];
        date = new String[temp - 1];
        occation = new String[temp - 1];
        day = new int[temp - 1];
        month = new int[temp - 1];
        year = new int[temp - 1];
        numberOfParameters = temp - 1;
        for(int i = 0; i < temp - 1; i++)
        {
            parameter[i] = getParameter(Integer.toString(i + 1));
            StringTokenizer st = new StringTokenizer(parameter[i], "|");
            date[i] = st.nextToken();
            occation[i] = st.nextToken();
            StringTokenizer st2 = new StringTokenizer(date[i], ".");
            day[i] = Integer.valueOf(st2.nextToken()).intValue();
            month[i] = Integer.valueOf(st2.nextToken()).intValue();
            year[i] = Integer.valueOf(st2.nextToken()).intValue();
        }

        createCalendar();
        repaint();
    }

    public void start()
    {
        if(th == null)
        {
            th = new Thread(this);
            th.setPriority(5);
            th.start();
        }
    }

    public void run()
    {
        do
        {
            repaint();
            if(positionX + fm.stringWidth(happening) < 0)
                positionX = 161;
            positionX += -moveTextX;
            try
            {
                noteb _tmp = this;
                Thread.sleep(20L);
            }
            catch(InterruptedException interruptedexception) { }
        } while(true);
    }

    public void update(Graphics g)
    {
        offScreen.fillRect(0, 0, 160, 190);
        offScreen.setFont(text);
        offScreen.drawImage(bg, 0, 0, this);
        String dayNumber = "";
        int x = 18;
        int y = 70;
        int start = 0;
        int end = 7;
        int dayValue = 0;
        String date = String.valueOf((new StringBuffer(String.valueOf(getMonth(cal.get(2))))).append(" ").append(cal.get(1)));
        offScreen.drawString(date, 80 - fm.stringWidth(date) / 2, 18);
        for(int j = 0; j < 6; j++)
        {
            for(int i = start; i < end; i++)
            {
                if(calendar[i][0] != null)
                {
                    dayNumber = calendar[i][0];
                    dayValue = Integer.valueOf(dayNumber).intValue();
                } else
                {
                    dayNumber = "";
                }
                offScreen.setColor(Color.red);
                if(calendar[i][1] == "true")
                    offScreen.drawImage(mark, x - 10, y - 18, this);
                if(dayValue == cal.get(5) && actualMonth == cal.get(2))
                    offScreen.setFont(bold);
                else
                    offScreen.setFont(text);
                offScreen.setColor(Color.black);
                offScreen.drawString(dayNumber, x - fm.stringWidth(dayNumber) / 2, y);
                x += 20;
            }

            start += 7;
            end += 7;
            y += 20;
            x = 18;
        }

        offScreen.drawImage(left, 9, 3, this);
        offScreen.drawImage(right, 130, 3, this);
        offScreen.setFont(text);
        offScreen.drawString(happening, positionX, 185);
        offScreen.setColor(Color.black);
        g.drawImage(wareHouse, 0, 0, this);
    }

    public boolean imageUpdate(Image i, int info, int x, int j, int k, int l)
    {
        return true;
    }

    public void createCalendar()
    {
        calendar = new String[42][2];
        int maxDaysInMonth = 0;
        cal.setFirstDayOfWeek(2);
        tempCal.setFirstDayOfWeek(2);
        tempCal.set(5, 1);
        int firstDayOfMonth = tempCal.get(7) - 1;
        if(firstDayOfMonth == 0)
            firstDayOfMonth = 7;
        for(; maxDaysInMonth < tempCal.get(5); tempCal.roll(5, true))
            maxDaysInMonth++;

        int counter = 1;
        for(int i = 0; i < 42; i++)
        {
            if(i < firstDayOfMonth - 1 || counter > maxDaysInMonth)
            {
                calendar[i][0] = null;
                calendar[i][1] = "false";
                continue;
            }
            calendar[i][0] = Integer.toString(counter);
            int j = 0;
            do
            {
                if(j >= numberOfParameters)
                    break;
                if(counter == day[j] && month[j] == cal.get(2) + 1 && year[j] == cal.get(1))
                {
                    calendar[i][1] = "true";
                    occationNumber[i] = j;
                    break;
                }
                calendar[i][1] = "false";
                j++;
            } while(true);
            counter++;
        }

    }

    public String getMonth(int monthNumber)
    {
        String months[] = {
            "Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober",
            "November", "December"
        };
        return months[monthNumber];
    }

    public void mouseMoved(MouseEvent m)
    {
        cellnumber = cell(m.getX(), m.getY());
        if(calendar[cellnumber][1] == "true")
        {
            if(!isInBox)
            {
                positionX = 161;
                happening = occation[occationNumber[cellnumber]];
                isInBox = true;
            }
        } else
        {
            happening = "";
            isInBox = false;
        }
        if(m.getX() > 9 && m.getX() < 29 && m.getY() > 3 && m.getY() < 28)
        {
            left = leftOn;
            repaint();
        } else
        {
            left = leftOff;
        }
        if(m.getX() > 130 && m.getX() < 150 && m.getY() > 3 && m.getY() < 28)
        {
            right = rightOn;
            repaint();
        } else
        {
            right = rightOff;
        }
        if(m.getY() > 170)
happening = String.valueOf((new StringBuffer("Booking Kalender (release ")).append(release).append("), by |1C|BenZoN."));
    }

    public void mouseDragged(MouseEvent mouseevent)
    {
    }

    public void mouseClicked(MouseEvent m)
    {
        if(m.getX() > 9 && m.getX() < 29 && m.getY() > 3 && m.getY() < 28)
        {
            if(cal.get(2) - 1 != actualMonth)
                cal.set(5, 1);
            if(cal.get(2) == 0)
            {
                cal.roll(1, false);
                tempCal.roll(1, false);
            }
            cal.roll(2, false);
            tempCal.roll(2, false);
            if(cal.get(2) == actualMonth)
            {
                cal.set(5, actualDay);
                tempCal.set(5, actualDay);
            }
            createCalendar();
            repaint();
        }
        if(m.getX() > 130 && m.getX() < 150 && m.getY() > 3 && m.getY() < 28)
        {
            if(cal.get(2) + 1 != actualMonth)
                cal.set(5, 1);
            if(cal.get(2) == 11)
            {
                cal.roll(1, true);
                tempCal.roll(1, true);
            }
            cal.roll(2, true);
            tempCal.roll(2, true);
            if(cal.get(2) == actualMonth)
            {
                cal.set(5, actualDay);
                tempCal.set(5, actualDay);
            }
            createCalendar();
            repaint();
        }
    }

    public void mousePressed(MouseEvent mouseevent)
    {
    }

    public void mouseReleased(MouseEvent mouseevent)
    {
    }

    public void mouseExited(MouseEvent m)
    {
        right = rightOff;
        left = leftOff;
        happening = "";
    }

    public void mouseEntered(MouseEvent mouseevent)
    {
    }

    public int cell(int x, int y)
    {
        int cellNumber = 0;
        int xDimenMin = 10;
        int xDimenMax = 30;
        int yDimenMax = 75;
        int yDimenMin = 55;
        int row = 0;
        for(int i = 0; i < 5; i++)
        {
            row = i * 7;
            for(int j = 0; j < 7; j++)
            {
                if(x > xDimenMin && x < xDimenMax && y > yDimenMin && y < yDimenMax)
                    cellNumber = row + j;
                xDimenMin += 20;
                xDimenMax += 20;
            }

            xDimenMin = 10;
            xDimenMax = 26;
            yDimenMin += 20;
            yDimenMax += 20;
        }

        return cellNumber;
    }

    String number;
    String release;
    String parameter[];
    String date[];
    String occation[];
    String calendar[][];
    String happening;
    int cellnumber;
    int occationNumber[];
    int day[];
    int month[];
    int year[];
    int numberOfParameters;
    int xCoord;
    int yCoord;
    int moveTextX;
    int positionX;
    int actualMonth;
    int actualDay;
    Calendar cal;
    Calendar tempCal;
    Image bg;
    Image mark;
    Image wareHouse;
    Image left;
    Image leftOn;
    Image leftOff;
    Image right;
    Image rightOn;
    Image rightOff;
    Graphics offScreen;
    Font text;
    Font bold;
    FontMetrics fm;
    Thread th;
    boolean isInBox;
}

Det virker ikke når jeg har Compilet det :( Så får jeg bare et Grå Felt dam dam dam

{
        String months[] = {
            "Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober",
            "November", "December"
        };
        return months[monthNumber];
    }

Det her er det eneste der er ændret altså jeg har give Datoer Danske navne :(

Hva pokker kan der være galt Piv Piv
Avatar billede Slettet bruger
13. maj 2002 - 22:00 #1
Kan du ikke maile appletten til maximus@pedersen.dk så skal jeg prøve at kigge på det og se om jeg kan finde fejlen
Avatar billede Slettet bruger
13. maj 2002 - 22:00 #2
P.S. Også gerne den orginale
Avatar billede Slettet bruger
14. maj 2002 - 12:12 #3
Jeg har lige modtaget filerne og prøver at kigge på dem enten i dag eller i morgen.
Avatar billede Slettet bruger
14. maj 2002 - 12:23 #4
Det tog ikke lang tid :-)
Du skal huske at compile din Java fil om til en Class fil, ellers virker det ikke.
Kan du ikke lige skrive din mail, så sender jeg Class filen til dig. Den erstatter du bare med den orginale også kører det hele igen
Avatar billede benzon Praktikant
14. maj 2002 - 12:31 #5
benzon@fald.dk
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester