PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : java+frames


McLuemmel
2005-08-23, 09:04:25
hi leute,

ich hab mal ne frage zu java (application) und frames.
ich arbeite nun zum ersten mal mit frames und finde einfach nicht wie man 2 frames "verknüpft".

es soll zum schluss so sein, dass ich mein hauptframe mittels konsole öffnet und in dem dann ein button vorhanden ist, wenn ich dann auf den klicke soll sich der aktive frame schließen und der neue frame öffnen.

kann mir da jemande helfen?

thx im voraus mcluemmel

mithrandir
2005-08-23, 10:50:51
Dere!

Wie wäre es mit der Methode setVisible(..) ?

bye, Peter

McLuemmel
2005-08-23, 15:18:05
ich glaub set visible geht irgendwie nicht.
die mehtode ist doch nur dafür ob ein frame angezeigt wird oder nicht.

noch mal zum vertständnis. jeder der beiden frames hat eine eigene klasse.
und ich will durch buttonklick den anderen öffnen.

zur zeit siehsts so aus


import java.awt.*;

public class Fenster1
{
public static void main(String[] args)
{
// Fenster-Objekt erzeugen
Frame fenster = new Frame();
fenster.setTitle("mein erstes Fenster");
fenster.setSize(250,150);

// kein automatisches Layout (einfach so hinnehmen)
fenster.setLayout(null);

Button button = new Button();
button.setLabel("drück mich");
button.setBounds(150,100,90,40); // engl. bounds = Grenzen
// Button in Fenster einfügen
fenster.add(button);

// Schriftzug
Label label = new Label();
label.setText("hier steht Text");
label.setBounds(5,120,100,30);
fenster.add(label);

// Fenster darstellen
fenster.setVisible(true);

/*button.addActionListener (new ActionListener()
{public void actionPerformed (ActionEvent e)

{
}


});*/

}
}


ich weis einfach nicht was ich in den button reinschreiben soll

mcluemmel

mithrandir
2005-08-23, 15:36:08
Dere!

Irgendwie komme ich nicht drauf, was du für ein Problem hast. Das hier scheint jedenfalls deinem Vorhaben ziemlich nahe zu kommen:

MyMainClass:
public class MyMainClass
{
private MyFrame1 frame1 = null;
private MyFrame2 frame2 = null;

public static void main( String[] args )
{
MyMainClass someObj = new MyMainClass();
}

public MyMainClass()
{
frame1 = new MyFrame1( this );
frame2 = new MyFrame2( this );

showFirstFrame();
}

public void showFirstFrame()
{
// Erstes Fenster anzeigen
frame1.setVisible( true );
}

public void showSecondFrame()
{
// Zweites Fenster anzeigen
frame2.setVisible( true );
}
}

MyFrame1
import java.awt.Button;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class MyFrame1 extends Frame implements ActionListener
{
private MyMainClass parent = null;

public MyFrame1( MyMainClass parent )
{
super( "Erstes Fenster" );

this.parent = parent;

setSize( new Dimension( 300, 200 ) );

// Button zum Oeffnen des zweiten Fensters
Button b = new Button( "Klick mich!" );
b.setBackground( Color.RED );
b.addActionListener( this );
b.setActionCommand( "Mach was" );
b.addActionListener( this );

add( b );

addWindowListener( new WindowAdapter()
{
public void windowClosing( WindowEvent e )
{
System.exit( 0 );
}
} );
}

public void actionPerformed( ActionEvent e )
{
if ( "Mach was".equals( e.getActionCommand() ) )
{
this.setVisible( false );
parent.showSecondFrame();
}
}
}

MyFrame2
import java.awt.Button;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class MyFrame2 extends Frame implements ActionListener
{
private MyMainClass parent = null;

public MyFrame2( MyMainClass parent )
{
super( "Zweites Fenster" );

this.parent = parent;

setSize( new Dimension( 300, 200 ) );

// Button zum Oeffnen des zweiten Fensters
Button b = new Button( "Klick mich!" );
b.setBackground( Color.BLUE );
b.addActionListener( this );
b.setActionCommand( "Mach was" );
b.addActionListener( this );

add( b );

addWindowListener( new WindowAdapter()
{
public void windowClosing( WindowEvent e )
{
System.exit( 0 );
}
} );
}

public void actionPerformed( ActionEvent e )
{
if ( "Mach was".equals( e.getActionCommand() ) )
{
this.setVisible( false );
parent.showFirstFrame();
}
}
}

bye, Peter