carookee - group communication for you
Home / JavaForum / Beginner
Infos   |   Features   |   Gold-Edition   |   Kundenservice   
java
  Übersicht
  Forum
Beginner
Java allgemein
JDBC
JNI
Networking
Online-Ressourcen
Swing + AWT
XML
Meckerecke
  Mitglieder
LOGIN





· Passwort vergessen
· Kostenlos anmelden
  Information
  Demo
  Features
  Im Vergleich
  Anmeldung
SUCHE
Beiträge, Foren oder Verfasser finden:
  Kundenservice
  Impressum
  Datenschutz
  AGB
Status
4.913 User online
0 User eingeloggt
 

Beiträge
   Antworten     Neuer Beitrag    

Beitrag 384 von 2963 (13%) |<   <   >   >|

Autor Java-Noob002
Datum 30.05.05, 15:28
Betreff Fehlermeldungen bei Ausführen des Applets


Es handelt sich um ein Applet, das nach Auswahl der Anzahl von Kontrollpunkten einen BSpline zeichnen soll. Kompiliert wird ohne Fehler, nur nach der Auswahl aus dem choice-menu erscheinen Fehlermeldungen mit denen ich nichts anfange kann.

Hier der Quelltext:

import java.awt.*;
import java.awt.event.*;
import java.lang.Math;
import java.applet.*;
import java.awt.Point;


public class BSpline extends Applet implements MouseListener, MouseMotionListener {
    Image buffer;
    Graphics bg;
    
    /*int var1 = 5;
    int var2 = 7;
    int var3 = 10;
    */

    int M;
    int maxM;
    
    Point P[];
    int drag = 0;
    
    public void init() {
        addMouseListener(this);
        addMouseMotionListener(this);
        setBackground(Color.white);
        Choice auswahl = new Choice();
        auswahl.add("5");
        auswahl.add("7");
        auswahl.add("10");
        add(auswahl);
        auswahl.addItemListener (new ItemListener() {
            public void itemStateChanged(ItemEvent e) {
                maxM = Integer.parseInt((String)e.getItem());
                System.out.println(maxM);
            }
        });
        
        
        
        setCursor(Cursor.getPredefinedCursor(java.awt.Cursor.CROSSHAIR_CURSOR));
        this.setBounds(0, 0, 640, 480);
        
        Dimension d = getSize();
        buffer = createImage(d.width, d.height);
    }
    
    public void start() {
        M = 0;
        
        P = new Point[maxM+1];
    }
    
    public void update(Graphics g) {
        paint(g);
    }
    
    public void paint(Graphics g) {
        double x, y;
        final int numberOfDivision = 100;
        double dt = 1.0 / (double)numberOfDivision;
        double c;
        int k;
        
        if(bg == null)
        bg = buffer.getGraphics();
        
        Dimension d = getSize();
        bg.setColor(Color.yellow);
        bg.fillRect(0, 0, d.width, d.height);
        
        if(M >= 1) {
            for(double t = -1.0; t < M; t += dt)
            {
                x = 0;
                y = 0;
                for(int j = -2; j <= M+2; j++) {
                    k = j;
                    if(k < 1)
                    k = 1;
                    if(k > M)
                    k = M;
                    c = coefficent(t - j);
                    x += (double)P[k].x * c;
                    y += (double)P[k].y * c;
                }
                
                bg.setColor(Color.red);
                bg.drawLine((int)x, (int)y, (int)x, (int)y);
            }
        }
        
        for(int i = 1; i <= M; i++) {
            if(drag == i)
            bg.setColor(Color.red);
            else
            bg.setColor(Color.blue);
            
            bg.fillOval(P[i].x-2, P[i].y-2, 5, 5);
            
            if(i != M) {
                bg.setColor(Color.blue);
                bg.drawLine(P[i].x, P[i].y, P[i+1].x, P[i+1].y);
            }
        }
        g.drawImage(buffer, 0, 0 ,this);
    }
    
    private double coefficent(double t) {
        double r;
        
        if(t < 0.0)
        t = -t;
        
        if(t < 1.0)
        r = (3.0 * t * t * t -6.0 * t * t + 4.0) / 6.0;
        
        else if(t < 2.0)
        r = -1.0 * (t - 2.0) * (t - 2.0) * (t - 2.0) / 6.0;
        
        else
        r = 0.0;
        
        return r;
    }
    
    public void mousePressed(MouseEvent e) {
        Point p = e.getPoint();
        drag = 0;
        
        for(int i = 1; i <= M; i++) {
            if(p.x <= P[i].x +3 && p.x >= P[i].x -3 &&
            p.y <= P[i].y +3 && p.y >= P[i].y -3)drag = i;
        }
        
        repaint();
    }
    
    public void mouseClicked(MouseEvent e)
    {
        if(M < maxM)
        {
            M++;
            P[M] = e.getPoint();
        }
        
    }
    
    public void mouseReleased(MouseEvent e) {
        drag = 0;
        repaint();
    }
    
    public void mouseDragged(MouseEvent e) {
        Point p = e.getPoint();
        if(drag != 0)
        P[drag] = p;
        
        repaint();
    }
    
    public void mouseEntered(MouseEvent e) {}
    public void mouseExited(MouseEvent e) {}
    public void mouseMoved(MouseEvent e) {}
    
    
}


Und hier die Fehlerausgabe:

init:
deps-jar:
Compiling 1 source file to C:\Dokumente und Einstellungen\Konto 1\JavaApplication8\build\classes
C:\Dokumente und Einstellungen\Konto 1\JavaApplication8\src\BSpline.java:50: possible loss of precision
found : double
required: int
P = new Point[maxM+1];
1 error
BUILD FAILED (total time: 0 seconds)



Diskussionsverlauf:
Fehlermeldungen bei Ausführen des Applets
    Re: Fehlermeldungen bei Ausführen des Applets

 Auf diesen Beitrag antworten
 Neuen Beitrag verfassen


|<   <   >   >|

                                                                                                                                                                                                                           

Impressum  · Datenschutz  · AGB  · Infos  · Presse
Ein modernes Forum: teamturn.com