Pratele potrebuji male vysvetleni funkce nejspis vlaken udalosti ve swingu.
Mam aplikaci, ktera je tvorena ramcem okna tvorejim instanci JFrame.
Z toho spustim v aplikaci dalsi okno .
A pri jeho zavreni se zavre i hlavi aplikace.
Jak to udelat, aby mi hlavni aplikace zustala zavrena.
Konkretne:
Z aplikace spustim vytvoreni reportu do souboru PDF s pomoci JasperReport a
iText. Ten chci zobrazit JasperReportu pomoci JasperViewer.
class HlavniOkno extends JFrame
{
Connection connection;
String jasper_file = new String();
jasper_file = dir + "/sestava.jasper" ;
..............
JasperPrint file = JasperFillManager
.fillReport(jasper_file,map,connection);
// parametr pro predani JasperReportu pri vatvareni sestavy
Map map = new HashMap();
map.put("klic_grp",klic_grp);
vytvorim soubor
.............
JasperViewer prohlizec;
prohlizec = new JasperViewer(file);
prohlizec.setSize(800,600);
prohlizec.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
prohlizec.setVisible( true);
--- main()
{
java.awt.EventQueue.invokeLater(new Runnable()
{
public void run()
{
JFrame frame = new JFrame("Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(1000, 700);
frame.setVisible(true);
}
}
}
... toto uvadi literatura jasperu, ze se takto spusti prohlizec.
prepsal jsem tak, ze jsem do tridy
class ViewerPDF implements Runnable
{
private JasperPrint file = null;
public ViewerPDF(JasperPrint f)
{
file = f;
}
public void run()
{
JasperViewer prohlizec;
prohlizec = new JasperViewer(file);
prohlizec.setSize(800,600);
prohlizec.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
prohlizec.setVisible( true);
}
}
spusteni :
ViewerPDF show = new ViewerPDF( tisk);
show.run();
pri uzavreni okna jasperu se oboji chova stejne, ze pri uzavreni okna spusteji
run se zavre vse, i okno HlavniOkno. Myslil jsem si asi naivne, ze se pri run
vyvori nove vlako.
Prepsal jsem to do tridy extends Thread implements Runnable ,
ale stale se mi zavira i hlavni okno.
Predpokladam, ze je to obecny problem interakce a predani udalosti o uzavreni
do rodicovskoho JFrame. Proc se preda udalost pro zavreni okna i do HlavniOkno
Pouzivam J2SE sun verze 1.6 a jsem na windows2000
Muzete mi poradit, v cem je problem a jak to prepsat?
Diky vrele :)!
Arne