tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Fabio Hellmann
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
209
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    sos sos ist offline Mitglied Silber
    Registriert seit
    Feb 2011
    Beiträge
    50
    Hallo liebe leute,

    sollte eigentlich eine simple Sache sein doch mir fehlen trotzdem die Kenntnisse dafür und zwar habe ich diese kleine App programmiert :
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    
    import java.awt.Frame;
    import java.awt.Window;
    import java.awt.event.ActionEvent;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
     
    import javax.swing.AbstractAction;
    import javax.swing.Action;
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
     
     
    public class Test extends JFrame{
        
        private Action actSchliessen;
        private WindowEvent we = null;
     
       public Test(){
           super("HauptFenster");
           
           JMenuBar mb = new JMenuBar();
           this.setJMenuBar(mb);
           
            JMenu datei = new JMenu("datei");
            
            defineActionSchliessen();
            datei.add(actSchliessen);
            mb.add(datei);
            
            
            Frame f = new Frame("Erstes Frame");
            f.setSize(300,300);
            
            f.setVisible(true);
            Frame f2 = new Frame("2. Frame");
            f2.setSize(150,150);
            f2.setVisible(true);
            
            
           
       }
       
      public void defineActionSchliessen(){
        
    //bitte keine vorwürfe wegen dieses Teils, das sind nämlich rein testzweck :) 
      
          actSchliessen = new AbstractAction("alle Fenster schließen"){
              public void actionPerformed(ActionEvent e){
                  Test t = new Test();
                 Window w =  t.we.getWindow();
                 int i = w.countComponents();
                 for(i=0;;i++)
                     w.dispose();
                
              }
          };
     
          
       } 
        
        
        public static void main(String[] args) {
            Test t = new Test();
            t.setSize(300,300);
            t.setVisible(true);
            t.addWindowListener(new WindowAdapter(){
                public void windowClosing(WindowEvent we){
                    System.exit(0);
                }
            });
            
            
            
            
        }
     
    }

    Hauptfenster verfügt über ein Menu und Action schliessen, diese soll bei einwahl alle erzeugten frames (in diesem fall f und f2 schliessen).

    bin für jeden tipp dankbar
     

  2. #2
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist gerade online Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Hi,

    also dein Ansatz kann schon deswegen gar nicht funktionieren, da du immer auf das gleiche Window-Objekt zugreifst.
    Code java:
    1
    2
    3
    4
    
                 Window w =  t.we.getWindow();
                 int i = w.countComponents();
                 for(i=0;;i++)
                     w.dispose();

    Ich würde es folgendermaßen machen:
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    
          actSchliessen = new AbstractAction("alle Fenster schließen"){
              public void actionPerformed(ActionEvent e){
                  Frame[] allFrames = getFrames();
                  for(int i = 0; i < allFrames.length; i++) {
                    allFrames[i].dispose();
                  }
              }
          };

    Ich habe den Code aber nicht getestet, deshalb kann ich auch nicht garantieren, dass er funktionieren wird.

    Gruß

    Fabio
    sos bedankt sich. 
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  3. #3
    sos sos ist offline Mitglied Silber
    Registriert seit
    Feb 2011
    Beiträge
    50
    danke Fabio, es schliessen sich dadurch tatsächlich alle Frames....aber Das HauptFrame sollte sich nicht
    mitschließen.
    irgend eine Idee ?
     

  4. #4
    sos sos ist offline Mitglied Silber
    Registriert seit
    Feb 2011
    Beiträge
    50
    HAHA Problem gelöst...
    einfach ab i = 1 iterieren dann wird das Hauptframe nicht mitgezählt..
    super vielen dank nochmal
     

  5. #5
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist gerade online Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Keine Ursache. Bitte markieren das Thema noch als erledigt. Danke
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

Ähnliche Themen

  1. Antworten: 13
    Letzter Beitrag: 31.01.11, 18:11
  2. C++ List Programm (SPEICHERN)
    Von HORNSWOGGLE im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 21.01.08, 13:13
  3. Swing - geöffnete Fenster ausgeben
    Von kroschel im Forum Java
    Antworten: 2
    Letzter Beitrag: 10.12.07, 14:49
  4. List<T> speichern
    Von xbu58 im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 14.10.07, 09:52
  5. List speichern
    Von _Truck_ im Forum Java
    Antworten: 8
    Letzter Beitrag: 31.08.07, 13:46