title image


Smiley Re: Label in Borderlayout mittig ausrichten
Hi



...in der Realität denke ich nicht in objekten...

Und ob du das tust!



if (du.denkstIn(objekten))

{

du.verstehst(this);

}







wie code ich z.B. wenn ich eine JButton variable mache und die EAST ausrichten möchte in einem Borderlayout??? denn der Constructor der class JButton hat ja keinen parameter für ne ausrichtung...



... Und das ist auch gut so: Der JButton (bzw. Button - du verwendest ja AWT und NICHT Swing!) sollte auf keinen Fall wissen, wohin er ausgerichtet wird (das geht den Button garnichts an!)



Die Objekte werden einfach erstmal erstellt. WO sie dann im Layout liegen sollen, geht nur die übergeordneten Components etwas an. Du erstellst z.B. einen Frame, und sagst ihm, dass er ein BorderLayout haben soll. Du sagst ihm also: "Ordne alle Komponenten, die DU enthältst, in einem BorderLayout an". Wenn du nun zu diesem Frame eine Component hinzufügst, mußt du ihm sagen, WO diese Component liegen soll. Das sind die fett geschriebenen Angaben unten im Code.



Die Sache mit dem Label kann man so machen, wie Meno es gesagt hat. Es ist nicht schlimm, dass das Label dann einen Namen ("caption") bekommt: Dieser Name ist ja NUR innerhalb des Konstruktors bekannt. Das Label sollte aber NICHT innerhalb der ganzen Klasse bekannt sein. Sowas wäre also "falsch":



class xxx {

Label caption = new Label("Bla");

public XXX() {

...

add(caption); // caption wird nur hier verwendet...

}

}



Es wäre in diesem Fall überflüssig, die Variable "caption" in der Klasse zu speichern, obwohl sie nur im Konstruktor verwendet wird.





However - hier nochmal der Code:





import java.awt.*;

import java.awt.event.*;

//Währungs-Tausch AWT Klasse

public class Umrechnen extends Frame // leite definierte Klasse Umrechnen von der Fensterklasse JFrame Frame!!! ab



{



public Umrechnen(String titel)



{

//Objektinstanzen erstellen

Label label2 = new Label("Tausch-Währung");

Label label3 = new Label("Tausch-Betrag");

Label label4 = new Label("umgerechnet in Euro");

TextField text1 = new TextField();

TextField text2 = new TextField();

TextField text3 = new TextField();



setLayout(new BorderLayout());

add(new Button("UMRECHNEN"),BorderLayout.SOUTH);



// Siehe Menos erste Antwort...

Label caption = new Label("Währungs-Umrechner");

caption.setAlignment(Label.CENTER);

add(caption,BorderLayout.NORTH);





//Panel für Centerbereich von Boderlayout erstellen

Panel centerPanel = new Panel();

centerPanel.setLayout(new GridLayout(3,2));

centerPanel.add(label2);

centerPanel.add(text1);

centerPanel.add(label3);

centerPanel.add(text2);

centerPanel.add(label4);

centerPanel.add(text3);

add(centerPanel, BorderLayout.CENTER);



addWindowListener(new WindowAdapter() {

public void windowClosing (WindowEvent evt) {System.exit(0);}});



}

public static void main (String [] args )



{

Umrechnen fenster = new Umrechnen ("");

fenster.setSize(400,150);

fenster.setVisible(true);

}



}





Die Zeile

add(new Button("UMRECHNEN"),BorderLayout.SOUTH);

wird so nicht bleiben können, da dem Button noch ein ActionListener zugewiesen werden muß... aber das kommt ja vielleicht später noch.



bye



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: