Stefan: Weiteres Fenster öffnen

Hallo,

habe ein Problem mit Java. Ich gebe in einem AWT-Fenster Bilder aus die in einer linearen Liste gespeichert sind. Klickt man nun auf das entsprechende Bild soll sich ein weiteres Fenster öffnen in dem weitere Eigenschaften der Person (auch in linearer Liste gespeichert) angezeigt werden. Ich bekomme es zwar hin das sich ein weiteres Fenster öffnet, wenn das entsprechende Bild getroffen wird, aber ich weiß nicht wie ich es hinbekomme dieses zusätzliche Fenster zu füllen.

Dies geschieht ja in der paint-Methode, aber die habe ich ja schon eingebunden um das Fenster darzustellen in der lediglich die Fotos der Personen ausgegeben werden. Um nun das zusätzliche Fenster mit Inhalt zu füllen bräuchte ich ja noch eine paint-Methode, oder wie funktioniert das? Wenn ja, wie weiß er dann welche paint-Methode zu welchem Fenster gehört?

Vielen Danke für Eure Hilfe!

  1. moin Stefan :)

    Um nun das zusätzliche Fenster mit Inhalt zu füllen bräuchte ich ja noch eine paint-Methode, oder wie funktioniert das? Wenn ja, wie weiß er dann welche paint-Methode zu welchem Fenster gehört?

    Ich verstehe deine Frage nicht ganz. Jedes Frame hat doch eine paint-Methode, die du überschreiben kannst. Zeig mir doch mal, wie du das zweite Fenster öffnest, vielleicht wird dann klarer was du meinst.

    liebe Grüße aus Berlin
    lina-

    --
    Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
    1. Hi,

      also ich habe in meiner Klasse der linearen Liste eine Methode getroffen() die berechnet ob ein Bild getroffen wurde, oder eben nicht. Wurde es getroffen, wird folgender Code erreicht:

      Frame fenster = new Frame();
              fenster.addWindowListener(new WindowClosingAdapter(false));
              fenster.setBackground(Color.WHITE);
              fenster.setSize(150,150);
              fenster.setVisible(true);

      Damit wird also ein weiteres Fenster geöffnet. Nur ich komme nicht dahinter wie ich dieses neue Fenster nun mit inhalt füllen kann.

      In der linearen Liste (im Konstruktor) wird ja auch schon das Übersichts-Fenster mit den einzelnen Bildern erzeugt und dann mit der Paint-Methode (die auch in der linearen Liste Klasse ist) "gefüllt" (also die Bilder eingebunden).

      1. moin Stefan :)

        Hi,

        also ich habe in meiner Klasse der linearen Liste eine Methode getroffen() die berechnet ob ein Bild getroffen wurde, oder eben nicht. Wurde es getroffen, wird folgender Code erreicht:

        Frame fenster = new Frame();
                fenster.addWindowListener(new WindowClosingAdapter(false));
                fenster.setBackground(Color.WHITE);
                fenster.setSize(150,150);
                fenster.setVisible(true);

        Damit wird also ein weiteres Fenster geöffnet. Nur ich komme nicht dahinter wie ich dieses neue Fenster nun mit inhalt füllen kann.

        In der linearen Liste (im Konstruktor) wird ja auch schon das Übersichts-Fenster mit den einzelnen Bildern erzeugt und dann mit der Paint-Methode (die auch in der linearen Liste Klasse ist) "gefüllt" (also die Bilder eingebunden).

        Ok.. so habe ich mir das gedacht...
        warum machst du dir nicht ne eigene Klasse, die von Frame erbt?

          
        public class Bild extends Frame  
        {  
        Image img;  
          public Bild(Image img){  
            this.img=img;  
            setSize( 500, 100 );  
            addWindowListener( new WindowAdapter() {  
              //Override  
              public void windowClosing ( WindowEvent e ) { System.exit( 0 ); }  
            } );  
          }  
          //Override  
            public void paint( Graphics g ){  
            g.drawImage(img, 120, 60,this);  
          }  
        }  
        
        

        der Aufruf wäre dann in etwa:

          
        Bild fenster = new Bild(imageToShow);  
        fenster.addWindowListener(new WindowClosingAdapter(false));  
        fenster.setBackground(Color.WHITE);  
        fenster.setSize(150,150);  
        fenster.setVisible(true);  
        
        

        PS: bitte Syntax nachlesen und prüfen. Dies ist keine fertige Lösung!

        liebe Grüße aus Berlin
        lina-

        --
        Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
        1. Super, Danke Lina!

          Ok.. so habe ich mir das gedacht...
          warum machst du dir nicht ne eigene Klasse, die von Frame erbt?

          public class Bild extends Frame
          {
          Image img;
            public Bild(Image img){
              this.img=img;
              setSize( 500, 100 );
              addWindowListener( new WindowAdapter() {
                //Override
                public void windowClosing ( WindowEvent e ) { System.exit( 0 ); }
              } );
            }
            //Override
              public void paint( Graphics g ){
              g.drawImage(img, 120, 60,this);
            }
          }

          
          >   
          > der Aufruf wäre dann in etwa:  
          > ~~~java
            
          
          > Bild fenster = new Bild(imageToShow);  
          > fenster.addWindowListener(new WindowClosingAdapter(false));  
          > fenster.setBackground(Color.WHITE);  
          > fenster.setSize(150,150);  
          > fenster.setVisible(true);  
          > 
          
          

          PS: bitte Syntax nachlesen und prüfen. Dies ist keine fertige Lösung!

          liebe Grüße aus Berlin
          lina-