Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Java » Funktionen aus paint() ausrufen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
14.12.2002, 18:19 Uhr
e-Caf|Y|baB



Hallo,
ich habe zwei innere Klassen, in der einen (ZeichnenPanel) werden Linien mithilfe von paint gezeichnet, nun möchte ich speichern was gezeichnet wurde und habe dazu eine Kalsse geschrieben: CLinien.
Die Kompilierung funzt wunderbar, nur beim Ausführen einer der beiden Funktionen aus der Klasse CLinien wirf das Programm Fehlermeldungen aus (und funzt nicht richtig). Die entsprechenden Aufrufe sind mit "!!!" markiert.

C++:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class ZeichnenFenster extends JInternalFrame implements ActionListener {
    
    ZeichnenPanel PZeichnen;
    JButton BLinie = new JButton("Linie");
    
    boolean klickzwei = false;
    int x1 = 0;
    int y1 = 0;
    int x2 = 0;
    int y2 = 0;

    MouseEvent mEvent = null;
    String aEvent = "";

    ...
    
    class ZeichnenPanel extends JPanel {
            
        public void paint(Graphics g) {
            
            Linien.zeichnen(g);        // !!!
        
            if(mEvent!=null) {
                if(klickzwei) {                
                    x2 = mEvent.getX();
                    y2 = mEvent.getY();
                }
                else {
                    x1 = mEvent.getX();
                    y1 = mEvent.getY();
                }
            }
            
            if(klickzwei) {                
                            
                if(aEvent.equals("Linie")) {                    
                    g.drawLine(x1,y1,x2,y2);
    
                    Linien.speichern(x1,y1,x2,y2);   // !!!
                }            
            }
        }
    }
    
    
    
    class CLinien {
        private int anzahl = 0;        
        private int[] x1 = new int[10];
        private int[] y1 = new int[10];
        private int[] x2 = new int[10];
        private int[] y2 = new int[10];
        
        public void zeichnen(Graphics g) {
            for(int i=0; i<anzahl; i++) {
                g.drawLine(x1[i],y1[i],x2[i],y2[i]);
                
            }
            
        }
        
        public void speichern(int x1, int y1, int x2, int y2) {
            this.x1[anzahl] = x1;
            this.y1[anzahl] = y1;
            this.x2[anzahl] = x2;
            this.y2[anzahl] = y2;
            anzahl++;    
        }
    }
    
    ...
}



MfG e-Caf
--
There are 10 types of people - those who understand binary and those who
don't.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
16.12.2002, 17:45 Uhr
e-Caf|Y|baB



Ein dummer Fehler kostet manchmal ganz schön viel Arbeit, ich habe vergessen "Linien" zu initialisieren, also die Zeile:
Linien = new CLinien();
Tschüss
--
There are 10 types of people - those who understand binary and those who
don't.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Java ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: