Newsgroup: it.comp.java
Titolo: come faccio ad inserire lo scrolling

In verità è un proseguimento di un altro 3d, ma c'è un problema nuovo.
Lo scopo è quello di disegnare una linea spezzata (tipo cardiogramma), senza 
ridisegnarla tutta ad ogni nuovo segmento.La cosa sembra essere riuscita, 
ma non mi scrolla , puttana eva (scusate).
Ho una classe così:
**************************
import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;
public class Cardio extends JPanel
{
   private Point2D oldPoint;
   private Point2D newPoint;
 
   /** Crea una nuova istanza alla classe Cardio */
   public Cardio()
   {
      oldPoint = new Point2D.Double(0, 70);
      newPoint = new Point2D.Double(20, 70);
   }
 
   public void paintComponent(Graphics g)
   {
      Graphics2D g2 = (Graphics2D) g;
      g2.draw(new Line2D.Double(oldPoint, newPoint));
   }
 
   public void setPoint(Point2D aPoint)
   {
      oldPoint = this.newPoint;
      this.newPoint = aPoint;
   }
 
}
**************************
Su suggerimento di Maurizio Testa , ho implementato la classe dentro una 
classe del genere:
++++++++++++++++++++++++++++++++++++++++++++++++
import javax.swing.*;
import java.util.*;
import java.awt.geom.*;
import java.awt.*;
public class Clock extends JFrame implements Runnable
{
   JLabel time;
   Cardio cardio;
   private int x;
   private Random random;
   private JScrollPane scroll;
   public static void main(String[] args)
   {
      Clock thisApp=new Clock();
   }
 
 
   Clock()
   {
      random = new Random();
      x = 20;
      this.setTitle("Clock");
      this.setSize(400, 400);
      this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      cardio = new Cardio();
      scroll=new JScrollPane(cardio, JScrollPane.VERTICAL_SCROLLBAR_NEVER, 
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
      this.getContentPane().add(scroll, BorderLayout.CENTER);
 
      this.show();
      Thread timer=new Thread(this);
      timer.run();
 
   }
 
   public void run()
   {
      while(true)
      {JTextArea prova = new JTextArea(1, 5);
      JScrollPane scroll2 = new JScrollPane(prova, 
JScrollPane.VERTICAL_SCROLLBAR_NEVER, 
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
 
      this.getContentPane().add(scroll2, BorderLayout.SOUTH);
 
         x += 5;
         cardio.setPoint(new Point2D.Double(x, random.nextInt(201)));
         cardio.repaint();
 
         try
         {
            Thread.sleep(100L);
         }
         catch(InterruptedException e)
         {
         }
      }
   }
}
++++++++++++++++++++++++++++++++++++++++
Non scrolla, perchè ? ci sto sbattendo la testa ( e la sto facendo sbattere 
anche ad un altro .....), ma prima di darmi vinto con il JScrollPane e 
cambiare tutto , volevo provare a sfruttare le vostre conoscenze.
-- 
Ciao. Fabrizio. ( icq: 241182067 )
< MISTAH KURTZ -- HE DEAD.
                A penny for the Old Guy> 
(T.S. Elliot: the hollow men)

"oizirbaF" <fabri.tre...@NOtiscali.it> ha scritto nel messaggio
news:b7k4ap$fla$1...@lacerta.tiscalinet.it...


       this.getContentPane().add(scroll2, BorderLayout.SOUTH);
non ho esaminato a fondo il codice, ma mi e' saltato all'occhio questo
punto: perche' nel metodo run crei ogni volta questi oggetti nuovi?
--
artemis.alpeia
http://spazioinwind.libero.it/artemis

artemis.alpeia wrote:

O santo cazzo .... definiamoli i miracoli del cut and paste, il metodo run 
non è cosi.
Ridò la classe Clock(sempre da un'idea di Maurizio Testa):


      scroll=new JScrollPane(cardio, JScrollPane.VERTICAL_SCROLLBAR_NEVER, 
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

         x += 5;
         cardio.setPoint(new Point2D.Double(x, random.nextInt(201)));
         cardio.repaint(x-5, 0, x, 400);
 
         try
         {
            Thread.sleep(100L);
         }
         catch(InterruptedException e)
         {
         }
      }
   }
}
++++++++++++++++++++++++++++
Teoricamente sarei riuscito a scrollare , in pratica setto la Classe Cardio 
su dimensioni maggiori del frame che lo contiene, devo solo trovare il modo 
però di mantenere il disegno , che scrollando in avanti un po' si mantiene 
, mentre scrollando indietro non si mantiene affatto.
