neues Frame per klick anzeigen

Status
Nicht offen für weitere Antworten.

Marfir

Aktives Mitglied
Hallo,

ich habe zwei Frames mit Buttons, Labels ect. vollgestopft. Frame 1 wird nach dem starten sofort angezeigt. Jetzt soll durch einen klick auf ein Button das andere Frame angezeigt werden.
Wie mache ich das?
framename.setVisible() erscheint leider nicht...


Jetzt schon mal vielen Dank!
 
Marfir hat gesagt.:
..ich habe zwei Frames mit Buttons, Labels ect. vollgestopft. Frame 1 wird nach dem starten sofort angezeigt. Jetzt soll durch einen klick auf ein Button das andere Frame angezeigt werden.
Wie mache ich das?
framename.setVisible() erscheint leider nicht...
Bei mir geht's mit framename.setVisible(true).
 
Bei mir geht's mit framename.setVisible(true).

Schön. Wenn ich den Frame-Namen Frame1 / Frame2 ansprechen will, kennt er den nicht. Und wenn ich die Klasse nutze gibts nur die 4 methoden void main[], getFrames() usw.

Mit protected bla Frame2 kann ich zwar dann in Frame2 den frame2 ansprechen, aber nicht vom frame1 aus...

Was muss man machen um dass er die Frames kennt???
 
Code:
//package schnipsel2;
/*
 * Frame1.java
 */
import java.awt.*;
import java.awt.event.*;
public class Frame1 extends Frame {
    public Frame1() {
        setSize(400,300);
        //Components erzeugen:
        frame2Button = new Button("frame2Button");
        
        //Layout:
        add(frame2Button, BorderLayout.NORTH);
        
        //Listeners:
        frame2Button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
                frame2ButtonActionPerformed(evt);
            }
        });
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent evt) {
                exitForm(evt);
            }
        });
    }
    private void frame2ButtonActionPerformed(ActionEvent evt) {
        Frame2 framename = new Frame2();
        framename.setVisible(true);
    }
    /** Exit the Application */
    private void exitForm(WindowEvent evt) {
        System.exit(0);
    }
    public static void main(String args[]) {new Frame1().setVisible(true);}
    private Button frame2Button;
}
class Frame2 extends Frame{
    public Frame2(){
        setSize(300,200);
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent evt) {
                exitForm(evt);
            }
        });
    }
    private void exitForm(WindowEvent evt) {
        dispose();
    }
}
 
So erzeuge ich während der Laufzeit ein neues Frame...
Ich hab aber ein zweites Frame bereits in der datei bildbig.java mit dem netbeans GUI-Editor erzeugt (das erste Frame ist in einer anderen .java-Datei). Wie zeig ich nun aus dem 1. Frame heraus das 2. Frame an?
 
Marfir hat gesagt.:
..Ich hab aber ein zweites Frame bereits in der datei bildbig.java mit dem netbeans GUI-Editor erzeugt (das erste Frame ist in einer anderen .java-Datei). Wie zeig ich nun aus dem 1. Frame heraus das 2. Frame an?
Genau auf die gleiche Art.
 
Marfir hat gesagt.:
Hä?

JFrame frame1 = new JFrame();
frame1.setVisible(true);

Das erzeugt doch ein neues leeres Frame!!!
Ich will aber mein bereits fertig erstelltes anzeigen!!!

Verstehst du nich was ich will?
Es ist schon ziemlich schwierig dich zu verstehen, weil deine Aussagen sehr ungenau sind.
Oben schreibst du von Frame und jetzt auf einmal von JFrame.
Könntest dir vielleicht etwas mehr Mühe geben.

Aber egal, an meinen Aussagen ändert sich eigentlich nichts.
Code:
       bildbig framename = new bildbig(); 
        framename.setVisible(true);

 
Oben schreibst du von Frame und jetzt auf einmal von JFrame.

Ja sorry. Da hab ich geschludert. Aber das Prinzip meiner Frage ändert sich deswegen doch nicht...

Aber egal, an meinen Aussagen ändert sich eigentlich nichts.

Du bist ein Scherzbold. :lol:
Dein erster code erstellt ein neues Frame, der zweite macht das was ich wollte.

Danke!
😀
 
Marfir hat gesagt.:
Dein erster code erstellt ein neues Frame, der zweite macht das was ich wollte.
Wo bitte ist da der Unterschied (ausser dem Klassenname natürlich):
1.Code:
Code:
    Frame2 framename = new Frame2(); 
     framename.setVisible(true);
2.Code:
Code:
    bildbig framename = new bildbig(); 
     framename.setVisible(true);
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben