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
User oder E-Mail
Passwort
·
Passwort vergessen
·
Kostenlos anmelden
Information
Demo
Features
Im Vergleich
Anmeldung
SUCHE
Beiträge, Foren oder Verfasser finden:
Kundenservice
Impressum
Datenschutz
AGB
Status
5.165 User online
0 User eingeloggt
Beiträge
Beginner
Java allgemein
JDBC
JNI
Networking
Online-Ressourcen
Swing + AWT
XML
Meckerecke
Antworten
Neuer Beitrag
Gesamtdarstellung
Detaildarstellung
Einzeldarstellung
Threaddarstellung
Beitrag 1259 von 2963 (42%)
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