2013-03-06 13 views
0

Я работаю над приложением, использующим Java и JFreeChart. В основном я хочу использовать таймер, чтобы закрыть окно/объект класса и создать новый объект и окно класса. Динамические возможности JFreeChart, похоже, не работают с API-интерфейсами, которые я использую, и это единственный способ дать динамику динамику.Закрыть и открыть окно Java Каждые минуты

Ниже приведен код, который у меня есть для основного, но все, что он делает, открывается одним окном, а затем закрывает его и открывает через минуту. Очевидно, что довольно ясно, почему все это происходит, но я не могу представить себе хороший способ сделать так, чтобы он создавал и удалял все объекты в таймере.

public static void main(final String[] args) throws Exception { 
    Scanner in = new Scanner(System.in); 
    final String host = ""; 
    final String username = ""; 
    final String password = ""; 
    final String id = "testStream"; 

    final GraphStream demo = new GraphStream("Dia Example graph", host, username, password, id); 
    demo.pack(); 
    RefineryUtilities.centerFrameOnScreen(demo); 
    demo.setVisible(true); 
    new java.util.Timer().schedule( 
      new java.util.TimerTask() { 
       @Override 
       public void run() { 
        demo.setVisible(false); 
        demo.dispose(); 
        try { 
         final GraphStream demo2 =new GraphStream("Dia Example graph", host, username, password, id); 
         demo2.pack(); 
         RefineryUtilities.centerFrameOnScreen(demo2); 
         demo2.setVisible(true); 
        } catch (DataServiceException e) { 
         // TODO Auto-generated catch block 
         e.printStackTrace(); 
        } 
       } 
      }, 
      60000); 
} 

} 
+2

Регулярное воссоздание окна кажется плохой идеей. Повторное создание панели с окном было бы гораздо более удобным решением. Также вы задали вопрос о JFreeChart api? Похоже, вы решили заняться этим, что дает вам еще одну проблему, а не решение основной проблемы. – unholysampler

ответ

0

Предлагаю разделить конструктор в минималистском конструктор и метод обновления:

public static void main(final String[] args) throws Exception { 
    final String host = ""; 
    final String username = ""; 
    final String password = ""; 
    final String id = "testStream"; 
    final GraphStream demo = new GraphStream("Dia Example graph"); 
    new java.util.Timer().schedule( 
     new java.util.TimerTask() { 
     @Override 
     public void run() { 
      demo.refresh(host, username, password, id); 
      demo.pack(); 
      RefineryUtilities.centerFrameOnScreen(demo); 
      demo.setVisible(true); 
     } 
     }, 
     0, 60000); 
} 

As you can see timer.schedule() может, имеет 3 параметра, чтобы начать немедленно.

Смежные вопросы