# Label erstellen und positionieren



## Pong (8. Jan 2010)

Hi

Wir haben in der Schule vor Kurzem mit Java angefangen, und dort ein Projekt was wir nun ganz alleine zuhause machen müssen. Wir mussten es über die Ferien machen, hatten also keine Chance unseren Lehrer zu fragen.

Ich hab Probleme damit, ein Label zu erstellen. Ich habe mich ein bisschen im Internet schlaugemacht und hab herausgefunden, das man Label mit einem Layoutmanager erstellen können soll. Zum Test habe ich diesen Code benutzt:


```
setLayout(new FlowLayout(FlowLayout.CENTER, 10, 10));
                add(new Label("Hi"));
                add(new Label("Ho"));
```

Leider wird mir auf dem Bildschirm garnichts angezeigt, ich muss also etwas vergessen oder falsch gemacht haben.

Wir haben erst ein paar Stunden Java gemacht und sowas in der Art noch garnicht. Deshalb entschuldigt das ich mich noch nicht so gut auskenne. Ich kenne eigentlich noch nichtmal die Grundlagen, aber ich muss das irgendwie hinkriegen. Am Besten so einfach wie möglich.

Danke im Vorraus.

mfg


----------



## CToJava (8. Jan 2010)

Ein Label erstellst du so:

JLabel label1 = new JLabel(); Oder Label label1 = new Label();

Bsp:


```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 06.01.2010
  * @author
  */

public class free extends JFrame {
  // Anfang Attribute
  private JLabel jLabel1 = new JLabel();
  // Ende Attribute

  public free(String title) {
    // Frame-Initialisierung
    super(title); // Super(Haupt)-Klasse aufrufen - Bitte an erster Stelle in der Methode lassen.
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); //Zum Beenden wichtig!!!!
    int frameWidth = 395; //Frame_Breite
    int frameHeight = 299;//Frame_Höhe
    setSize(frameWidth, frameHeight); //Setzen der Variablen -Das Fenster brauch eine Größe!
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); //Konstrukt zur Fensterposition *x
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y); // x* -bis hier hin
    Container cp = getContentPane(); //Ein Pane einrichten
    cp.setLayout(null); //Fenster-Layout festlegen - z.B.: FlowLayout, BorderLayout, etc. oder keins
    // Anfang Komponenten

    jLabel1.setBounds(16, 16, 44, 16); //1.Zahl: pos(x) 2.Zahl: pos(y) 3.Zahl: Breite 4.Zahl: Höhe
    jLabel1.setText("jLabel1"); 
    jLabel1.setFont(new Font("MS Sans Serif", Font.PLAIN, 13)); //Schriftart festlegen
    cp.add(jLabel1);
    // Ende Komponenten

    setResizable(false); //Fenster hat keinen Maximierungs-Knopf ->bei(false)
    setVisible(true); //Damit bekommst du das Fenster erst zu Gesicht !!!
  }


  public static void main(String[] args) {  //Die Start-Methode
    try {
      // Set cross-platform Java L&F (also called "Metal") //Für dich Egal!!! 
        UIManager.setLookAndFeel(
            UIManager.getSystemLookAndFeelClassName()); //Setzt des Java-Look & Feel
    }
    catch (UnsupportedLookAndFeelException e) {
       // handle exception
    }
    catch (ClassNotFoundException e) {
       // handle exception
    }
    catch (InstantiationException e) {
       // handle exception
    }
    catch (IllegalAccessException e) {
       // handle exception
    }

    new free("free");
  }
}
```

Alles außer Zeile: 16 und die Zeilen: 30-37 sollten erstmal weniger wichtig sein.


----------



## Pong (8. Jan 2010)

ok danke schonmal 

Problem: Wenn ich das jetzt ausführe, dann verlang BlueJ von mir eine Eingabe:







Bin in Java ein Neuling und weiss jetzt nicht was ich tun soll :bahnhof:


----------



## CToJava (8. Jan 2010)

Du verwendest wohl einen externen main-Aufruf.

Warum erstellst du nicht einfach nur eine Datei mit dem Namen free.java und kompilierst es.

->Der main-Aufruf (public static void main(String[] args) {//Code}) habe ich doch schon angegeben.

->Weiter (Das Eingabeproblem):

Die Methode free(String title) erwartet wie gut zu erkennen einen String(Zeichenkette)-Wert.

->Sieh dir den Aufruf in Zeile 64 an.
-> ......Du musst lediglich einen Titel für das Fenster angeben.
.... Gib irgent einen Namen ein.


----------



## Pong (9. Jan 2010)

Ok jetzt hats nach ein bisschen rumprobieren geklappt, vielen Dank!

Kann man in einem Label auch Zahlen addieren? Also wenn 1 + 1 das dann nicht 11 sondern 2 rauskommt?


----------



## Pong (9. Jan 2010)

Hat sich schon erledigt!

Vielen Dank nochmal CToJava!


----------

