2011-06-21 19 views
5

Mam zintegrowaną wersję demo Jfreechart Bar z moją aplikacją swing. Umieściłem następujący kod w akci wykonanej metody przycisku, ten kod był wcześniej w głównej metodzie klasy demonstracyjnej Bar.Zamykanie okna huśtawki jfreechart zamykanie całej aplikacji

final BarChart3DDemo3 demo = new BarChart3DDemo3("3D Bar Chart Demo 3"); 
     demo.pack(); 
     RefineryUtilities.centerFrameOnScreen(demo); 
     demo.setVisible(true); 

Generuje wykres słupkowy. Ale po zamknięciu okna wykresu słupkowego. Moja cała aplikacja się zamyka.

Próbowałem wstawić demo.getDefaultCloseOperation(ApplicationFrame.DISPOSE_ON_CLOSE); , ale nie działa. Chociaż nie daje żadnego błędu.

Próbowałem również wstawić to w konstruktorze BarChart3DDemo3, ale jego błąd dawania getDefaultCloseOperation() metoda nie przyjmuje argumentu int.

Nie mam pojęcia, co dalej? Proszę pomóż. Dzięki.

+0

Nie ma też szczęścia z HIDE_ON_CLOSE .. – JavaBits

+1

Masz na myśli * set * DefaultCloseOperation (... DISPOSE ...), prawda? – maerics

+0

DISPOSE_ON_CLOSE i HIDE_ON_CLOSE oba działają poprawnie z JFrame, który nie reagował na ApplicationFrame. – JavaBits

Odpowiedz

11

Należy zauważyć, że ApplicationFrame "nasłuchuje zdarzeń zamknięcia okna i odpowiada, wyłączając JVM." Jest przeznaczony do aplikacji demonstracyjnych. Zamiast tego umieść swój ChartPanel w JFrame, jak pokazano here.

+0

ok spróbuje z tym. dzięki – JavaBits

+4

Usunąłem ApplicationFrame i zastąpiłem JFrame i działa poprawnie. – JavaBits

0

Zamiast

public class LineChart_AWT rozciąga ApplicationFrame,

public class LineChart_AWT rozciąga JFrame pracuje bez zarzutu.

Powiązane problemy