Hi!
Bei folgendem Code habe ich ein Problem. Wenn die + Taste z.B. gedrückt wird, erhöhrt sich der Zoom-Faktor.
Dannach wird repaint() aufgerufen um den Graphen neu zu zeichnen.
Jedoch wird der vorhergehende nicht gelöscht, sondern bleibt erhalten.
Ändert man die Fenstergröße oder Minimiert das Fenster kurzfristig, erscheint das Fenster dann richtig!
Wo liegt der Fehler??
Danke!
Bei folgendem Code habe ich ein Problem. Wenn die + Taste z.B. gedrückt wird, erhöhrt sich der Zoom-Faktor.
Dannach wird repaint() aufgerufen um den Graphen neu zu zeichnen.
Jedoch wird der vorhergehende nicht gelöscht, sondern bleibt erhalten.
Ändert man die Fenstergröße oder Minimiert das Fenster kurzfristig, erscheint das Fenster dann richtig!
Wo liegt der Fehler??
Danke!
Code:
public void keyPressed(KeyEvent k)
{
String taste=KeyEvent.getKeyText(k.getKeyCode());
if(taste.equals("Tastenblock +") || taste.equals("Plus"))
{
if(zoom+10 < 100)
{
zoom+=10;
repaint();
}
}
else if(taste.equals("Tastenblock -") || taste.equals("Minus"))
{
if(zoom-10 > 0)
{
zoom-=10;
repaint();
}
}
}
public void paint(Graphics g)
{
g.setColor(Color.black);
g.translate(breite/2,hoehe/2);
g.drawLine(breite/2*-1,0,breite/2,0);
g.drawLine(0,hoehe/2*-1,0,hoehe/2);
oldPoint=(Double.parseDouble((String)wertebereich.get(0))*(-1));
oldX=von;
g.setColor(Color.red);
int index=0;
for(x=von; x<bis; x+=.05)
{
point=(Double.parseDouble((String)wertebereich.get(index))*(-1));
index++;
//if(Math.abs(point)<(getHeight())/zoom)
g.drawLine((int)(x*zoom),(int)(point*zoom),(int)(oldX*zoom),(int)(oldPoint*zoom));
oldPoint=point;
oldX=x;
}
}