JPanel Frage

  • Themenstarter Themenstarter lingling
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
L

lingling

Gast
Hallo Leute
bin Swing Anfanger,ich möchte JFrame in JApplet verwenden,eigentlich würde ich die MyPane1 und MyPane2 in MyPane3 zusammenlegen,damit eine schöne Layout bekommen,aber geht es einfach nicht,dann versuche ich in pane
hereinzuschreiben,leider auch nicht.

bin nicht klar damit,ob
Panels sich zusammeneinbinden dürfen,oder gibt es andere Ursache.
Danke schön für Ihre Hilfe.

Code:
public class Soheute extends JApplet
 {   
  JFrame BaFrame;
  public Soheute() 
     {   
            BaFrame=new JFrame("VS300");
              
             MyPanel1 GMyPanel1=new MyPanel1();
             MyPanel2 GMyPanel2=new MyPanel2();
              
             JPanel pane = new JPanel();
              
             pane.setLayout(new BorderLayout());
             pane.add(GMyPanel1,"NORTH");
             pane.add(GMyPanel2,"CENTER");
              
             //MyPanel3 MyPanel5_G;
        
              //MyPanel5_G=new MyPanel3();
                   
              
             
             Container CLO= BaFrame.getContentPane();
             
             //CLO.add(GMyPanel1,BorderLayout.NORTH);
             //CLO.add(GMyPanel2,BorderLayout.CENTER);
             
             CLO.add(pane);
             
             //BaFrame.setContentPane(GMyPanel1);   
              //BaFrame.getContentPane().add(GMyPanel1);
                 
              BaFrame.setSize(600, 500);       
               
              BaFrame.setLocation(200,150);
              BaFrame.show();
              
      }// end init
     
      class MyPanel1 extends JPanel
      {
      	public MyPanel1()
      	{
      	
      	JLabel BJLabel=new JLabel("BassParameter");
      	
      	this.setLayout(new FlowLayout());
      
    
      	this.add(BJLabel);
      	}
      }
              
       class MyPanel2 extends JPanel
      {	
      
      
         public MyPanel2()
      	{
      	    this.setLayout(new GridLayout(3,2));
      	    JLabel Ip=new JLabel("IP_Adress:");
      	    JTextField Ip_T=new JTextField();
      	    JLabel Ip_s=new JLabel("IP_Subnetmask");
      	    JTextField Ip_s_T=new JTextField();
      	    JLabel Ip_M=new JLabel("Mac_Address:");
      	    JTextField Ip_M_T=new JTextField(); 
      	    this.add(Ip);
      	    this.add(Ip_T);
      	    this.add(Ip_s);
      	    this.add(Ip_s_T);
      	    this.add(Ip_M);
      	    this.add(Ip_M_T);
      	    
      	    
      	    
      	}
      	
      }
        class MyPanel3 extends JPanel
      {
      	
      	public MyPanel3()
      {
      	  this.setLayout(new BorderLayout() );
      	  MyPanel2 Lokal_P2=new MyPanel2();
      	  MyPanel1 Lokal_P1=new MyPanel1();
      	 
      	  
      	  this.add(Lokal_P1,"NORTH");
      	  this.add(Lokal_P2,"CENTER");
      	  
      	  
      }
 
du willst deine beiden Panels 1 & 2 im dritten anordnen und dass dann als hauptpanel nehmen ??

Klar geht das. Definiere im 3. Panel ein beliebiges Layout (z.B. BorderLayout) und füge die beiden Panels 1 & 2 dazu...

Dann fügst du nur (!) das Panel 3 in den Frame deines Applets.....

oder meinst du was anderes ?
 
deathbyaclown hat gesagt.:
du willst deine beiden Panels 1 & 2 im dritten anordnen und dass dann als hauptpanel nehmen ??

Klar geht das. Definiere im 3. Panel ein beliebiges Layout (z.B. BorderLayout) und füge die beiden Panels 1 & 2 dazu...

Dann fügst du nur (!) das Panel 3 in den Frame deines Applets.....

oder meinst du was anderes ?
ja ganz genau,und habe ich auch so ähhlich gemacht,aber wie die obere code zeigt,keine Ahnung wieso funktioniert nicht? :wink:
 
Du erzeugst in deinem Code gar nicht das Panel3 ! du fügst deinem Frame einfach Panel1 und Panel2 hinzu !!
Code:
Panel3 panel3 = new Panel3(); // in der klasse panel3 werden dann panel1 und panel2 initialisiert !
frame.getContentPane().add(panel3); // nun wird der panel3 dem frame hinzugefügt
.....
Und dann sollte es klappen. Wie Panel1 und Panel2 gelayoutet werden ist dann die Sache von Panel3 !

BTW:
Nach den Codingkonventions werden Variablen immer klein geschrieben !! Dann kann man sie besser von den Klassen unterscheiden !
 
deathbyaclown hat gesagt.:
Du erzeugst in deinem Code gar nicht das Panel3 ! du fügst deinem Frame einfach Panel1 und Panel2 hinzu !!
Code:
Panel3 panel3 = new Panel3(); // in der klasse panel3 werden dann panel1 und panel2 initialisiert !
frame.getContentPane().add(panel3); // nun wird der panel3 dem frame hinzugefügt
.....
Und dann sollte es klappen. Wie Panel1 und Panel2 gelayoutet werden ist dann die Sache von Panel3 !

BTW:
Nach den Codingkonventions werden Variablen immer klein geschrieben !! Dann kann man sie besser von den Klassen unterscheiden !

doch,doch,habe ich eigentlich schon mit Panel3 versucht,da klappt nicht,(momental als komental gezeichnet)
deswegen habe ich was geändert. :rot zeichen war die originale code.Vielen Danke für deine weitere Hilfe

Code:
              MyPanel1 GMyPanel1=new MyPanel1();
              MyPanel2 GMyPanel2=new MyPanel2();
              
              JPanel pane = new JPanel();
              
              pane.setLayout(new BorderLayout());
              pane.add(GMyPanel1,"NORTH");
              pane.add(GMyPanel2,"SOUTH");
              
          [color=red]  //MyPanel3 MyPanel5_G;
        
                           //MyPanel5_G=new MyPanel3();
                           
                         //BaFrame.getContentPane().add(MyPanel5_G);[/color]                   
              
             
             Container CLO= BaFrame.getContentPane();
             
             //CLO.add(GMyPanel1,BorderLayout.NORTH);
             //CLO.add(GMyPanel2,BorderLayout.CENTER);
              CLO.add(pane);
 
Code:
/*
 * Created on 20.04.2004
 */
package mine.test;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout;

import javax.swing.JApplet;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

/**
 * @author deathbyaclown
 *
 */
public class Soheute extends JApplet {
	JFrame BaFrame;
	public Soheute() {
		BaFrame = new JFrame("VS300");

		//MyPanel1 GMyPanel1 = new MyPanel1();
		//MyPanel2 GMyPanel2 = new MyPanel2();
		MyPanel3 MyPanel5_G;

		MyPanel5_G=new MyPanel3();

		Container CLO = BaFrame.getContentPane();

		//CLO.add(GMyPanel1,BorderLayout.NORTH);
		//CLO.add(GMyPanel2,BorderLayout.CENTER);

		CLO.add(MyPanel5_G);

		//BaFrame.setContentPane(GMyPanel1);   
		//BaFrame.getContentPane().add(GMyPanel1);

		BaFrame.setSize(600, 500);

		BaFrame.setLocation(200, 150);
		BaFrame.show();

	} // end init

	class MyPanel1 extends JPanel {
		public MyPanel1() {

			JLabel BJLabel = new JLabel("BassParameter");

			this.setLayout(new FlowLayout());

			this.add(BJLabel);
		}
	}

	class MyPanel2 extends JPanel {

		public MyPanel2() {
			this.setLayout(new GridLayout(3, 2));
			JLabel Ip = new JLabel("IP_Adress:");
			JTextField Ip_T = new JTextField();
			JLabel Ip_s = new JLabel("IP_Subnetmask");
			JTextField Ip_s_T = new JTextField();
			JLabel Ip_M = new JLabel("Mac_Address:");
			JTextField Ip_M_T = new JTextField();
			this.add(Ip);
			this.add(Ip_T);
			this.add(Ip_s);
			this.add(Ip_s_T);
			this.add(Ip_M);
			this.add(Ip_M_T);

		}

	}
	class MyPanel3 extends JPanel {

		public MyPanel3() {
			this.setLayout(new BorderLayout());
			MyPanel2 Lokal_P2 = new MyPanel2();
			MyPanel1 Lokal_P1 = new MyPanel1();

			this.add(Lokal_P1, BorderLayout.NORTH);
			this.add(Lokal_P2, BorderLayout.CENTER);
		}
	}
}
So klappt was - weiß net ob du es so wolltest...
Der Fehler war, dass er die Angaben "NORTH" und "CENTER" nicht kannte !!

BTW: Was immer hilft (für dich und für die Helfer) - gebe an, was für eine Fehlermeldung von java ausgespuckt wird ! dann geht das helfen wesentlich schneller !!
 
A ja,es knappt endlich,vielen Danke Updairs.die original example code war mir von Internet kopiert,es macht mir total blöde.Danke dir noch mal 🙂
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben