Fenster schließen verhindern

TDO88

Bekanntes Mitglied
Hallo,

ich erstelle mir mit jfreechart ein Balkendiagramm, welches sich öffnet, wenn ich auf einen button klicke.
Code des Balkendiagramms:
Java:
public class BarChart extends ApplicationFrame
{
   public BarChart( String applicationTitle , String chartTitle , AxisInformations[] AvValues)
   {
      super( applicationTitle );       
      JFreeChart barChart = ChartFactory.createBarChart(
         chartTitle,          
         "Identifier",           
         "Averages [µm]",           
         createDataset(AvValues),         
         PlotOrientation.VERTICAL,          
         true, true, false);
        
      ChartPanel chartPanel = new ChartPanel( barChart );       
      chartPanel.setPreferredSize(new java.awt.Dimension( 560 , 367 ) );       
      setContentPane( chartPanel );
   }
   private CategoryDataset createDataset( AxisInformations[] AveValues)
   {
      final String Pa = "Pa";              
      final String P = "P";             
      final String PSavg = "PS avg";             
      final String Uavg = "U avg"; 
      final String X = "X";
      final String Y = "Y";
      final DefaultCategoryDataset dataset =
      new DefaultCategoryDataset( ); 

      dataset.addValue(AveValues[0].Pa, X, Pa);
      dataset.addValue(AveValues[1].Pa, Y, Pa);
      dataset.addValue(AveValues[0].P, X, P);
      dataset.addValue(AveValues[1].P, Y, P);
      dataset.addValue(AveValues[0].PSavg, X, PSavg);
      dataset.addValue(AveValues[1].PSavg, Y, PSavg);
      dataset.addValue(AveValues[0].Uavg, X, Uavg);
      dataset.addValue(AveValues[1].Uavg, Y, Uavg);
     
      return dataset;
   }
}

Aufruf:
Java:
BarChart bchart = new BarChart("Average Values", "Bar Graph", AverageValues);
bchart.pack();
RefineryUtilities.centerFrameOnScreen(bchart);
bchart.setVisible(true);

Mein Problem dabei ist jetzt, dass wenn ich das Fenster mit dem Balkendiagramm über das "x" rechts oben schließe, wird mein Hauptprogramm ebenfalls mit geschlossen, was ich absolut nicht möchte.
Wie kann ich das verhindern?

Gruß
TDO
 
Danke für den Link.
Mir ist bekannt, dass ich das Fenster mit bchart.setVisible(false) "beenden" kann.
Die Frage ist nur, wo ich das machen muss?!
Wenn der Button für das Diagramm gedrückt wird, ist der Text oben, das einzige, was in der Methode passiert und wenn er das Diagramm anzeigt, springt er ja aus der Methode heraus. An welcher Stelle im Programm kann ich also das Schließen abfangen?
Oder gibt es dafür ein Event, welches abgefangen werden kann?
 
Ich kenn mich nicht so gut in Swing aus (progge in JavaFX).
Aber kannst du nicht
Java:
bchart.setDefaultCloseOperation(operator);
oder so machen ?
 
@Cromewell:
Das funktioniert (warum auch immer) leider nicht.

@Thallius:
Danke für den Link. Funktioniert jetzt.
Das einzige, was ich geändert habe, war die Vererbung der Klasse in:
Java:
public class BarChart extends JFrame

Jetzt verhält sich das Fenster wie gewünscht!
Danke nochmal

Gruß
TDO
 
Hallo nochmal,

nochmal eine andere Frage dazu.
Kann ich auf dem Fenster unter dem Diagramm noch was einfügen?
Die Namen an der Grafik sind mit Pa, P usw. relativ kryptisch und ich würde gerne unter dem Diagramm eine Art Legende einfügen, mit den Erklärungen zu den Abkürzungen.

Gruß
TDO
 
Wie adde ich das denn auf auf mein Fenster? In dem Code oben steht ja nichts von JFrame o.Ä.?! Stehe da leider etwas auf dem Schlauch
 
Ich habe bisher immer den Design Editor von Netbeans benutzt und mich noch nie um Platzierung von Elementen auf dem Frontpanel beschäftigt und bin auch noch ein Einsteiger in Java...
Man kann eben nicht alles gleichzeitig lernen...
 

Zurück
Oben