@nadom

Как реализовать поток внутри JFrame?

По нажатию на кнопку создается новый JFrame, в котором рисуется график.
Поскольку встроенных графиков в Java.swing нету, то я использую библиотеку jCharts. Библиотека хорошая, но для корректного отображения в созданном фрэйме я запускаю поток, который периодически перерисовывает график.
При этом работает кнопка свернуть, а крестик не работает.
Из-за того, что поток засыпает постоянно, не прожимается еще и главный фрэйм, на котором кнопка создания фрэйма с графиком.
Как это обойти ?

Возможно есть событие перемещения окна, тогда я знаю как организовать и без потока фрэйм с графиком. Сейчас убрать поток невозиожно, тк необходима перерисовка.

UPD Иными словами, мне надо заставить поток, рисуйщий главный фрэйм, спать пока не закрыт фрэйм с графиком.
frame = new JFrame();
		frame.setSize( 600, 600 );
		frame.setTitle(title);
		frame.setResizable(false);
		frame.setVisible( true );
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		Thread T = new Thread (this);
		init_components(type, xAxisLabels, xAxisTitle, 
				yAxisTitle, title, legendLabels, data);
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                T.run();
            }
        });

@Override
	public void run() {
		while (true) {
			try {
				repaint();
				T.sleep(1000);
			} catch (InterruptedException e) {
				e.printStackTrace(System.out);
			}
		}
	}
  • Вопрос задан
  • 536 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы