mehrere klassen in einem GUI ausführen

sim26

Mitglied
Hallo alle,

weiß jemand wie kann man mehr als ein Klasse in einem Gui ausführen,

Mein Programme lautet,

Code:
public class testextends JFrame  {
public static void main(String[] args)throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException  {            
					
	test1 st1=new test1();
		test2 st2=new Test2();
     st1.setTitle(My Application");
	
	st1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	Insets insets=st1.getInsets();
	st1.setSize(400+insets.left+insets.right, 730+insets.top + insets.bottom);
	st1.setVisible(true);
	
             			
                }
}

meine klassen:

public class test1 extends JFrame {
}
public class test2 extends JFrame {
}

Hier werde dann nur was in der Klasse Test1 ausgeführt aber Test2 nicht ?

Danke viel mals…..
 
Hi,

woher weißt du, dass die Klasse Test2 nicht ausgeführt wird?

Hast du schonmal versucht für die JFrame eine feste größe zu setzen und dann auch auf Test2 die Methode setVisible(true) aufrufst? Denn nur dann wird der Frame auch sichtbar.

Was du in deinen Frames machst kann ich allerdings nicht sehen, darum bin ich mir auch nicht 100% sicher ob du da vllt den Thread anhältst.

Du solltest dir auch mal die Java Konventionen anschauen, bspw. beginnen Klassen immer mit einem Großbuchstaben, etc.

Gruß

Romsl
 
wenn ich für die Klasse test2 ein: st2.setVisible(true); mache dann kriege ich zwei fenstern was ich nicht will.

Ich alles in einem einzigen fenster ausführen...........
 
so meine klassen sind folgendes:
Code:
public class Test1 extends JFrame {
	
          JTextField lengh2 = new JTextField(5);       
   public  Test1()  {  	      
 getContentPane().setLayout(new BorderLayout(5,5));            
 GridBagConstraints c = new GridBagConstraints(); 
 Container contentPane = getContentPane();
 GridBagLayout gridbag = new GridBagLayout();
  contentPane.setLayout(null);
 c.fill = GridBagConstraints.HORIZONTAL; 
 
 Insets insets = contentPane.getInsets();
      Dimension size= lengh2.getPreferredSize();
      lengh2.setBounds(200+insets.top,80+insets.top,size.width,size.height);
      gridbag.setConstraints(lengh2, c);
      contentPane.add(lengh2);

JButton choose=new JButton("Start");
      size= choose.getPreferredSize();
      choose.setBounds(290+insets.left,80+insets.top,size.width,size.height-4);
      gridbag.setConstraints(choose, c);
      contentPane.add(choose);
      choose.addActionListener(new btn_chooseclicked());
      
   
}
   class btn_chooseclicked implements ActionListener{
       public void actionPerformed(ActionEvent ae)
		{
           try {
         	 TheLenght tngh=new TheLenght();
           	  tngh.cooser();
           	
          } catch ( Exception e )
         {
           System.out.println( "Konnte Datei nicht erstellen" );
         }   
       }
   }
  
}

die zweite klasse ist dann:
Code:
public class    Test2 extends JFrame  {

	 JTextField lengh2 = new JTextField(5);
	 
	 public void cooser() {
			
	     	lengh2.setText( "ok");
			}
	
}

hier werde die klasse Test2 nicht in meinem Fenster ausgeführt.

im Gegenteil wenn ich die klasse Test2 zugebe zu die Klasse Test1
dann klappt gut, d.h ich bekomme nach dem ausführung von programme "ok" im JTextField.
Code:
public class test1 extends JFrame {
	
          JTextField lengh2 = new JTextField(5);       
   public  test1()  {  	      
 getContentPane().setLayout(new BorderLayout(5,5));            
 GridBagConstraints c = new GridBagConstraints(); 
 Container contentPane = getContentPane();
 GridBagLayout gridbag = new GridBagLayout();
  contentPane.setLayout(null);
 c.fill = GridBagConstraints.HORIZONTAL; 
 
 Insets insets = contentPane.getInsets();
      Dimension size= lengh2.getPreferredSize();
      lengh2.setBounds(200+insets.top,80+insets.top,size.width,size.height);
      gridbag.setConstraints(lengh2, c);
      contentPane.add(lengh2);

JButton choose=new JButton("Start");
      size= choose.getPreferredSize();
      choose.setBounds(290+insets.left,80+insets.top,size.width,size.height-4);
      gridbag.setConstraints(choose, c);
      contentPane.add(choose);
      choose.addActionListener(new btn_chooseclicked());
      
   
}
   class btn_chooseclicked implements ActionListener{
       public void actionPerformed(ActionEvent ae)
		{
           try {
         	 
           	cooser();
          } catch ( Exception e )
         {
           System.out.println( "Konnte Datei nicht erstellen" );
         }   
       }
   }
   public void cooser() {
		
     	lengh2.setText( "ok");
		}
}
 
Hi,

du solltest Dir wirklich zuerst ein Buch oder den Link von oben zur Brust nehmen, dann wirst du feststellen, dass es so nicht gehen kann. Du erzeugst z.B. Objekte wie GridBagContraints und verwendest diese aber nirgends.

Das sind Fehler die man mit sehr wenig Aufwand (Kapitel 14/15 - Galileocomputing Webseite) vermeinden kann/muss.

Sorry wenn es etwas hart klingt, aber wie schon gesagt wenn du Dir diese Kapitel anschaust (es sind dort auch sehr viele Beispiele vorhanden) dann wirst du schnell etwas sauberes zu Stande bekommen.

Gruß

Romsl
 
Zurück