Labeltext einmal angezeigt dann nicht?

Jedit

nicht mehr wegzudenken
Hi!

Ok also ich hab mir heute Java installiert und mal erste Gehversuche gestartet. Jetzt wollte ich mal schaun wie ich etwas in einem Frame ausgeben kann und versucht ein Label einzufügen und da den Text reinzischreiben.

Dazu folgenden Quellcode:
import java.awt.*;
import javax.swing.*;

public class frame1
{
public static void main ( String[] args )
{
JFrame frame = new JFrame("Hauptmenü");
frame.setSize(800,600);
frame.setVisible( true );
frame.setLocationRelativeTo(null);
JLabel label = new JLabel("Text-Only Label");
label.setFont(new Font("Serif", Font.PLAIN, 36));
frame.getContentPane().add(label);
//frame.getContentPane().setBackground(Color.BLUE);

}
}

Beim ersten Versuch hats geklappt (bin mir zu 99% sicher, dass es genau dieser Quellcode war). Dann wollte ich schaun ob ich zusätzlich die Hintergrundfarbe vom Frame ändern kann und die "//" gelöscht und erneut gestartet. Der Frame war weiß und der label wurde mir ebenfalls nicht angezeigt. Also fürge ich die "//" wieder hinzu, versuche es erneut, aber wieder keine Anzeige ... hmm was habe ich da bitte falsch gemacht?

Ich benutze JCreator und habe zwischen den Versuchen immer den Blitz-Butten gedrückt für "stops the active tools" (ich hoffe das war das richtige). Weil wenn ich den Frame mit X geschlossne habe, wurde das "Programm" nicht vollständig zurückgesetzt ... muss da wohl nochwas einfügen wie im Delphi mit application.terminate, oder?

Wäre sehr nett wenn mir jemand sagen könnte warums 1 mal angezeigt wurde und seither nicht mehr, verwirrt mich ein bisserl.

Ajo und wenn irgendwas bei dem import unnötig ist .. bitte entschuldigt, ich lerne sowas meistens indem ich mir was ausdenke was ich machen will, dazu etwas suche, erst quellcode lese, dann die Erklährung dazu und dann versuche sowas selbst nachzuschreiben ... nur beim import was wofür genau ist, hab ich noch nicht 100% im Kopf^^

Ajo und was bedeutet eigentlich das "args" beim main?

lg

Edit1: Keine Sorge, hab das zumindest ein bischen übersichtlicher Formatiert (wenn der Rest schon nach Neuling ausschaun sollte, was ich ja auch bin^^), aber hier wurden die Tabs nicht übernommen ;)
 
Nicht zu deinem Problem, da kann ich dir Mangels Kenntnis nicht helfen. ;)
Wenn du aber deinen Code zwischen die BBCode-Tags CODE hier im Forum setzt bleiben die Formatierungen erhalten. :D

Ob sie jetzt stimmen, keine Ahnung, habe nur wahlos Tabs gesetzt.

Code:
import java.awt.*;
import javax.swing.*;

        public class frame1
{
        public static void main ( String[] args )
{
                JFrame frame = new JFrame("Hauptmenü");
                frame.setSize(800,600);
                frame.setVisible( true );
                frame.setLocationRelativeTo(null);
        JLabel label = new JLabel("Text-Only Label");
                label.setFont(new Font("Serif", Font.PLAIN, 36));
                frame.getContentPane().add(label);
        //frame.getContentPane().setBackground(Color.BLUE);

        }
}
 
Hi!

ok danke sehr für den Hinweis mit dem BB-Code, ist sehr hilfreich ;)

Also zu meinem Problem:
Ich habe jetzt ein Close Event hinzugefügt:
Code:
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Jetzt muss ich nicht mehr den Blitz Button drücken.

Zur Anzeige:
Ich habe dem Label eine Größe zugewiesen (200,100) dann wurde es angezeigt, habs mit // zum Kommentar gemacht (Die Größenzuordnung), nicht mehr angezeigt, // wieder gelöscht, wieder angezeigt^^ Dürfte also der Fehler gewesen sein.

Dazu hätte ich noch eine Frage: Kann man die Größe eines Labels immer 100% vom Text machen? Wäre ganz hilfreich, wenn man zB die Schriftgröße variabel macht.

Außerdem wäre es gut zu wissen, wie ich den Text im Label ganz oben stehen lassen kann (derzeit wird er vertikal zentriert, die horizontale ausrichtung habe ich mit "JLabel.LEFT" linksbündig, habe versucht TOP einzufügen, funktioniert aber nicht).

Derzeitiger Code:
Code:
import java.awt.*;
import javax.swing.*;

public class frame1
{
  public static void main ( String[] args )
  {
    //Frame
    JFrame frame = new JFrame("Hauptmenü");
    frame.setSize(800,600);
    frame.setVisible( true );
    frame.setLocationRelativeTo(null);
    
    //Label mit Textausgabe
    JLabel label = new JLabel("Text-Only Label", JLabel.LEFT);
    label.setFont(new Font("Arial", Font.BOLD, 12));
    label.setForeground(Color.white);
    label.setVisible( true );
    label.setSize(200,100);
    label.setLocation(1,1);

    //Einbinden des Labels und Hintergrundfarbe des Frames ändern
    frame.getContentPane().add(label);
    frame.getContentPane().setBackground(Color.BLUE);
    
    //Anwendung durch Schließen des Frames beenden
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
  }
}

lg

Edit1: habs mit:
Code:
	label.setVerticalTextPosition(JLabel.TOP);
	label.setHorizontalTextPosition(JLabel.RIGHT);
versucht, leider kein Erfolg.
 
Zuletzt bearbeitet:
Oben