DEFAULT_CLOSE_OPERATION bei folgendem Programm nicht einz.

Status
Nicht offen für weitere Antworten.

p316266

Mitglied
Hallo,

ich versuche seit >1 std. die DefaulCloseOperation auf DISPOSE_ON_CLOSE zu stellen.
Also, dass sich das Fenster zwar schließt aber nicht das ganze Program drumherum.

Code:
/* ------------------
 * BarChartDemo5.java
 * ------------------
 * (C) Copyright 2002-2006, by Object Refinery Limited.
 *
 */
package test;

import java.awt.Color;
import java.awt.Font;

import javax.swing.JPanel;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.AxisLocation;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;

/**
 * A simple demonstration application showing how to create a horizontal bar
 * chart.
 */
public class BarChartDemo5 extends ApplicationFrame {

    /**
     * Creates a new demo instance.
     *
     * @param title  the frame title.
     */
    public BarChartDemo5(String title) {
        super(title);
        JPanel chartPanel = createPanel();
        chartPanel.setPreferredSize(new java.awt.Dimension(800, 400));
        setContentPane(chartPanel);
    }

    /**
     * Creates a sample dataset.
     *
     * @return A sample dataset.
     */
    private static CategoryDataset createDataset() {

        // The following data is obtained from:
        //
        // [url]http://www.homeoffice.gov.uk/rds/pdfs2/r188.pdf[/url]
        //
        // An arbitrary selection of countries has been included in this
        // dataset, please refer to the original report for the complete
        // set.
        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
        String seriesKey = "C...";
        dataset.addValue(59, seriesKey, "BIPC211");
        dataset.addValue(69, seriesKey, "BIPC111");
        dataset.addValue(85, seriesKey, "BIPC411");
        dataset.addValue(93, seriesKey, "BIPC151");
        dataset.addValue(96, seriesKey, "BIPC171");
        dataset.addValue(111, seriesKey, "BIPC211");
        dataset.addValue(116, seriesKey, "BIPC115");
        dataset.addValue(121, seriesKey, "BIPC123");
        dataset.addValue(129, seriesKey, "BIPC164");
        dataset.addValue(157, seriesKey, "BIPC165");
        dataset.addValue(205, seriesKey, "BIPC213");
        dataset.addValue(229, seriesKey, "BIPC231");
        dataset.addValue(359, seriesKey, "BIPC261");
        dataset.addValue(404, seriesKey, "BIPC217");
        dataset.addValue(406, seriesKey, "BIPC115");
        dataset.addValue(686, seriesKey, "BIPC121");
        dataset.addValue(111, seriesKey, "BIPC129");
        dataset.addValue(18, seriesKey, "BIPC218");
        dataset.addValue(185, seriesKey, "BIPC258");
        return dataset;
    }

    /**
     * Creates a chart.
     *
     * @param dataset  the dataset.
     *
     * @return A chart.
     */
    private static JFreeChart createChart(final CategoryDataset dataset) {
        // create the chart...
        JFreeChart chart = ChartFactory.createBarChart(
                "...", // chart title
                "Rechner", // domain axis label
                "# Std. letzte Woche", // range axis label
                dataset, // data
                PlotOrientation.HORIZONTAL, // orientation
                true, // include legend
                true,
                false);
        chart.addSubtitle(new TextTitle(
                "Source: Database",
                new Font("Dialog", Font.ITALIC, 10)));
        chart.setBackgroundPaint(Color.white);
        CategoryPlot plot = (CategoryPlot) chart.getPlot();
        plot.setBackgroundPaint(Color.lightGray);
        plot.setRangeGridlinePaint(Color.white);
        plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT);
        BarRenderer renderer = (BarRenderer) plot.getRenderer();
        renderer.setBaseItemLabelsVisible(true);
        renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
        CategoryAxis categoryAxis = plot.getDomainAxis();
        categoryAxis.setCategoryMargin(0.0);
        categoryAxis.setUpperMargin(0.02);
        categoryAxis.setLowerMargin(0.02);
        NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
        rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
        rangeAxis.setUpperMargin(0.10);

        return chart;
    }

    /**
     * Creates a panel for the demo (used by SuperDemo.java).
     *
     * @return A panel.
     */
    public static JPanel createPanel() {
        JFreeChart chart = createChart(createDataset());
        return new ChartPanel(chart);
    }

    /**
     * Starting point for the demonstration application.
     *
     * @param args  ignored.
     */
    public static void main(String[] args) {

        BarChartDemo5 demo = new BarChartDemo5("Test Chart!");
        demo.pack();
        RefineryUtilities.centerFrameOnScreen(demo);
        demo.setVisible(true);

    }
}

habe es in der main methode probiert mit:
demo.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
aber das klappt nicht.
 
S

SlaterB

Gast
und was bedeutet 'klappt nicht'?
Compilerfehler, Exception zur Laufzeit oder welches falsche Programmverhalten?

warum sollte das Programm denn weiterlaufen? wenn sonst nix da ist, ist auch nach dispose() Programmende
 

p316266

Mitglied
nein, die elemente der main-methode rufe ich in einem anderen programm auf. leider schließt sich dann immer das ganze programm wenn ich in dem erstellten graphen das rote X von windows drücke. es soll sich aber doch bitte nur der graph schließen.
 
S

SlaterB

Gast
ok, ApplicationFrame hat auch noch einen WindowListener, vielleicht aus AWT-Frame-Zeiten,

überschreibe

@Override
public void windowClosing(WindowEvent event)
{
// nix passiert
}

dann wird das Programm nicht mehr beendet,
zur Sicherheit kannst du noch
> demo.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
setzen, niemand anders setzt aber (bisher) einen anderen Wert und Dispose ist der Standardwert,

wenn man EXIT_ON_CLOSE setzt, dann würde sich das Programm trotz überschriebenen Listener beenden
 

Ravendark

Aktives Mitglied
du könntest einen windowListener einbauen:
Code:
DeinFrame.addWindowListener(new WindowAdapter() {
  @Override public void windowClosing(WindowEvent e) {
    // leer lassen da beim schließen ja nichts passieren soll
   // eventuell DeinFrame.setVisible(false);   
  }
});


PS: wie kann man eigentlich eigene (überflüssige) beiträge löschen?? :lol:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
hdi non-default close operation bei JDialog AWT, Swing, JavaFX & SWT 2
C Default table model aktualisieren AWT, Swing, JavaFX & SWT 7
Hatsi09 JCombobox default wert AWT, Swing, JavaFX & SWT 6
T Default Table wird nicht angezeigt AWT, Swing, JavaFX & SWT 15
M Default-WindowListener JFrame entfernen (Stichwort: iconified) AWT, Swing, JavaFX & SWT 4
M JavaFX Scrollpane: Style von Contentpanel default AWT, Swing, JavaFX & SWT 1
Tom299 JavaFX Default-Cursor läßt sich nicht immer "aktivieren" AWT, Swing, JavaFX & SWT 3
R Ändern Default-Verhalten von JScrollpane in einer JScrollpane AWT, Swing, JavaFX & SWT 1
B Swing JTextPane - Einfärbungen auf "default" AWT, Swing, JavaFX & SWT 2
H default cell renderer AWT, Swing, JavaFX & SWT 3
J Swing Default-Eigenschaft bei JButton AWT, Swing, JavaFX & SWT 22
C Swing Default Werte für JFormattedTextField und Eingaben zurücksetzen AWT, Swing, JavaFX & SWT 5
M SWT DateTime per default null Wert ? AWT, Swing, JavaFX & SWT 3
S JTextField Default Text AWT, Swing, JavaFX & SWT 5
K Swing Wie ändere ich die default action für Drag&Drop AWT, Swing, JavaFX & SWT 6
G Wie komm ich z.B. an das Default WarningMessageIcon ran? AWT, Swing, JavaFX & SWT 2
R TreeViewer in SWT: Default Selection eines Items AWT, Swing, JavaFX & SWT 3
I Default Button AWT, Swing, JavaFX & SWT 5
G setLookAndFeel to default LookAndFeel? AWT, Swing, JavaFX & SWT 4
I "default"-Style im DefaultStyledDocument AWT, Swing, JavaFX & SWT 2
G default Layout für JPanel AWT, Swing, JavaFX & SWT 2
T Ändern des Default-Aussehens einer JComboBox AWT, Swing, JavaFX & SWT 3
D FileFilter Default Eintrag AWT, Swing, JavaFX & SWT 4
S Default Button in Dialogs(Ok und Cancel) AWT, Swing, JavaFX & SWT 4
H default format settings AWT, Swing, JavaFX & SWT 11
A (Default)TreeModel und wie die Daten hinein bekommen AWT, Swing, JavaFX & SWT 5
P Default Link in Swing, --> öffne Browser -> Browse URL AWT, Swing, JavaFX & SWT 8
Juelin Probleme bei Stage.close() AWT, Swing, JavaFX & SWT 23
_user_q Kann man ein 2. JavaFX-Fenster auch beenden (exit) statt schließen (close) lassen? AWT, Swing, JavaFX & SWT 8
H Swing BufferedReader.close() hängt im SwingWorker AWT, Swing, JavaFX & SWT 1
J JTabbedPane: close Button Problem AWT, Swing, JavaFX & SWT 2
R JavaFX Stage.close() funktioniert nicht im jar-File AWT, Swing, JavaFX & SWT 2
A Mouse event und exit on close AWT, Swing, JavaFX & SWT 11
Luk10 Überschreiben von JFrame: Close AWT, Swing, JavaFX & SWT 4
C Swing Menubar Close, Minimize, Maximize button AWT, Swing, JavaFX & SWT 7
B AWT ueber close schliesen AWT, Swing, JavaFX & SWT 8
L Fenster inaktiv setzen / deaktivieren (unable to close window) AWT, Swing, JavaFX & SWT 16
P JDialog Close-Button inaktiv machen AWT, Swing, JavaFX & SWT 1
F JFrame Close Problem AWT, Swing, JavaFX & SWT 1
M close methode AWT, Swing, JavaFX & SWT 3
S Fensterbuttons (min / max / close) ausblenden AWT, Swing, JavaFX & SWT 5
G Listener fuer Window Close AWT, Swing, JavaFX & SWT 2
thE_29 Modaler Dialog - close on not focus AWT, Swing, JavaFX & SWT 3
S Swing Update eine JTabelle nach einer Drag&Drop Operation AWT, Swing, JavaFX & SWT 0
M 2D-Grafik LookupOp Operation auf BufferedImage AWT, Swing, JavaFX & SWT 7
C keine weiteren Events während Drag&Drop Operation möglich? AWT, Swing, JavaFX & SWT 5
hdi SWT Operation auf GUI-Komponente kommt mal wieder nicht an... AWT, Swing, JavaFX & SWT 9
S Swing DnD: Image während Drag-Operation ändern AWT, Swing, JavaFX & SWT 3
J Designfrage bei rechenintensiver Operation AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen

Neue Themen


Oben