Unterprogramm beenden

HeinerPyt

Erfahrenes Mitglied
Hi,

ich habe ein Menuauswahl. Wenn ich einen der Menüpunkte anklicke, dann öffnet sich ein kleines Fenter, das unter anderem auch einen Ende-Button beinhaltet. Wenn ich diesen anklicke wird

System.exit( 0 );

aufgerufen. Damit wird aber das gesamte Programm beendet Ich will aber das Hauptfenster mit dem Menü weiterlaufen lassen und nur diesen Unterpunkt beenden. Wenn ich in dem kleinen Fenster das Schließen-Symbol anklicke verwende ich

win.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

Damit wird nur das kleine Fenster beendet und das menü läuftt weiter. Wie erreiche ich das auch bei meinem Ende-Button?

Danke
Heiner
 
Danke für die Antwort:

Leider erhalte ich eine Fehlermenldung wenn ich das so mache. Hier mal der Code:

Code:
	  public void init_window() 
	  { 
			JFrame win = new julianisch(400,180);
			
		    win.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		    win.setTitle("Berechnet Julianisches Datum");

		    Panel panel1 = new Panel();
			panel1.setBackground(Color.BLACK);
		    panel1.setLayout(new GridLayout(3,2));
		    
			JLabel L1 = new JLabel("Jahreszahl:");
		    JLabel L2 = new JLabel("Monat:");
		    JLabel L3 = new JLabel("Tag:");
		    JLabel L4 = new JLabel("Ergebnis:");
		    
		    L1.setFont(new Font("Serif",Font.BOLD,20));
		    L1.setForeground(Color.MAGENTA);
		    L2.setFont(new Font("Serif",Font.BOLD,20));
		    L2.setForeground(Color.MAGENTA);
		    L3.setFont(new Font("Serif",Font.BOLD,20));
		    L3.setForeground(Color.MAGENTA);
		    L4.setFont(new Font("Serif",Font.BOLD,20));
		    L4.setForeground(Color.RED);
		    
	    
		    JButton BEnd = new JButton("Ende");
		    BEnd.setActionCommand("B1");
		    JButton BRech = new JButton("Berechnen");
		    BRech.setActionCommand("B2");
	    
		    panel1.add(L1);
		    panel1.add(TJahr);
		    panel1.add(L2);
		    panel1.add(TMonat);
		    panel1.add(L3);
		    panel1.add(TTag);
		    
		    Panel panel2 = new Panel();
		    panel2.setLayout(new GridLayout(1,1));
		    panel2.add(L4);
		    panel2.add(TErg);
		    
		    Panel panel3 = new Panel();
		    panel3.setLayout(new BorderLayout());
		    panel3.add(BRech, BorderLayout.WEST);
		    panel3.add(BEnd, BorderLayout.EAST);

			   ActionListener al = new ActionListener()
			    {
			    	public void actionPerformed(ActionEvent e) 
			    	{
			    		if(e.getActionCommand().equals("B1"))
			    		{
			    			win.dispose(); 
			    		}
			    		if(e.getActionCommand().equals("B2"))
			    		{
			    			BerechneJulDatum();
			    		}
			    	}
			    };	
			    
		    BEnd.addActionListener(al);
		    BRech.addActionListener(al);

		    Panel panel4 = new Panel();
		    
		    panel4.setLayout(new BoxLayout(panel4,BoxLayout.PAGE_AXIS));
		    panel4.add(panel1);
		    panel4.add(panel2);
		    panel4.add(panel3);
		    win.setLayout(new GridLayout(1,1));
		    win.add(panel4);
//		    win.pack();
		    win.setVisible( true ); 
		    
		    
	
	  }

Die meldung lautet:

cannot refer to non-final variable win inside a inner class defined in a differend method.
 
Zurück