Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Obiekt używany do wymuszenia przerysowania: renderLock.notify()
- */
- final Object renderLock=new Object();
- /**
- * Klasa która czekając na notyfikacje z renderLock wywołuje przerysowania
- * gdy są potrzebne
- */
- class Renderer extends Thread {
- Flowchart flow;
- public Renderer(Flowchart flow) {
- this.flow = flow;
- this.setName("Flowchart renderer");
- }
- /**
- * Przerysowuje scenę
- */
- Runnable timer=new Runnable(){
- @Override
- public void run() {
- flow.flow.repaint();
- }
- };
- @Override
- public void run(){
- synchronized (renderLock){
- try {
- while(rendering){ //Dopóki ma w ogóle rysować
- SwingUtilities.invokeLater(timer); //przerysuj
- if(animatedElements.size()>0) //jeśli są elementy, które są animowane
- renderLock.wait(35); //czeka 35ms i przerysowuje jeszcze raz
- else //jeśli nie
- renderLock.wait(); //czeka do notyfikcacji
- }
- } catch (Exception ex) {
- Logger.getLogger(Renderer.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement