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
3.375 User online
0 User eingeloggt
 

Beiträge
   Antworten     Neuer Beitrag    

Beitrag 2942 von 2963 (99%) |<   <   >   >|

Autor ghost1985
Datum 30.10.08, 15:04
Betreff Zeichnen Linien Löschen brauche hilfe


Hi habe zwei Klassen eine Klasse JFrame und eine Klasse JPanel. In der JPanel zeichene ich und im JFrame wird es dargestellt. Ich zeichne ein Koordinatensystem mit Punkten und diese werden verbunden. Wenn ich nun mein Frame vergrößere verschiebt sich alles richtig nur die alten verbindungslinienen sind auch noch zu sehen. Was kann ich tun?
Hier mein Code:

[code]
public class ZeichenFrame extends JFrame{
Zeichnen zeich;
public ZeichenFrame(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setBackground(Color.WHITE);
setSize(400, 540);
setTitle("Programmieren");

Zeichnen zeich = new Zeichnen();

this.getContentPane().add(zeich,"Center");


addMouseListener(new Listener());
addMouseMotionListener(new Listener());

setVisible(true);
}



public static void main(String[] args) {
//ZeichenFrame zf;

JFrame zf = new ZeichenFrame();
}
}
public class Zeichnen extends JPanel implements Runnable{
Thread A;
private GeneralPath p = new GeneralPath();
double array[]= new double [4];
double array1[]= new double [4];
double array2[]= {0.0,1.0,2.0,3.0,4.0};
double array3[]= {0.0,1.0,2.0,1.0,0.0};


public Zeichnen(){





A=new Thread();
A.start();


}


public void pointsZeichnen(Graphics2D g){
//Punkte zeichnen
for(int wert=0; wert <5;wert ++){
Font f = new Font("Arial", Font.BOLD,40);
g.setColor(Color.BLACK);
g.setFont(f);
g.drawString(".", getWidth()/2-5+(float)array2[wert]*getWidth()/10,getHeight()/2+3-(float)array3[wert]*getHeight()/10);
p.moveTo(getWidth()/2+(float)array2[wert]*getWidth()/10,getHeight()/2-(float)array3[wert]*getHeight()/10);

//linien zeichnen alte linien bleiben!

try{ p.lineTo(getWidth()/2+(float)array2[wert+1]*getWidth()/10 ,getHeight()/2-(float)array3[wert+1]*getHeight()/10);
g.draw(p);

}
catch(ArrayIndexOutOfBoundsException ex){


}
}

}




public void draw(Graphics2D g){//Koordinatensystem

for(int xstriche=0;xstriche<6;xstriche++){
g.drawLine(getWidth()/2 +(getWidth()/10*xstriche),getHeight()/2 -3, getWidth()/2 +(getWidth()/10*xstriche),getHeight()/2 +3 );

}

for(int ystriche=0;ystriche<6;ystriche++){
g.drawLine(getWidth()/2 -3,getHeight()/2 -(getHeight()/10*ystriche),getWidth()/2 +3,getHeight()/2 -(getHeight()/10*ystriche) );

}

g.drawLine(getWidth()/2, 0, getWidth()/2, getHeight());//y-achse
g.drawLine(0, getHeight()/2, getWidth(),getHeight()/2);//x-achse



}






public void paint ( Graphics g){
Graphics2D g2 = (Graphics2D) g;

draw(g2);

pointsZeichnen(g2);





}


public void run() {


}

}




 Auf diesen Beitrag antworten
 Neuen Beitrag verfassen


|<   <   >   >|

                                                                                                                                                                                                                           

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