2017-01-11 3 views
0

Ich habe ein JLabel als Überschrift erstellt und angepasst, die ohne Problem angezeigt wurde. Das Problem trat auf, als ich versuchte, ein zweites JLabel zu erstellen, da nur das zweite JLabel angezeigt werden würde. Wenn ich ein drittes erstellte, würde nur das angezeigt, aber nicht das erste und das zweite.nur ein JLabel zur gleichen Zeit (Java Swing)

Grundsätzlich wird nur das neueste JLabel angezeigt. Wie kann ich mehrere JLabels gleichzeitig anzeigen lassen?

Hier ist mein Code.

public class MainForm extends JFrame { 

EmployeeDAO dao = new EmployeeDAO(); 
private static JLabel label, name; 


MainForm() 
{ 
    super("Employee Database"); 
    GUI(); 
} 

private void GUI() 
{ 
    JLabel label = new JLabel("Enter Employee Information"); 
    label.setVerticalAlignment(JLabel.TOP); 
    label.setHorizontalAlignment(JLabel.CENTER); 
    label.setFont(new Font("Serif", Font.PLAIN, 20)); 
    label.setForeground(Color.red); 
    add(label); 

    JLabel name = new JLabel("Name: "); 
    add(name); 
    } 
} 
+2

'JFrame' verwendet standardmäßig ein' BorderLayout', das nur eine einzige Komponente an einer der 5 verfügbaren Positionen anzeigt (in der Mitte der Standard), versuchen Sie das Layout zu ändern, beginnen Sie mit [Layout] Komponenten innerhalb eines Containers] (https://docs.oracle.com/javase/tutorial/uiswing/layout/index.html) – MadProgrammer

+0

Vielleicht möchten Sie lesen [Wie Sie Etiketten verwenden] (https://docs.oracle.com /javase/tutorial/uiswing/components/label.html). –

Antwort

0

Normalerweise, wenn Sie mehr als eine Komponente einen Container hinzufügen möchten (wie Sie mit dem JLabels im JFrame tun) müssen Sie das Layout-Manager entscheiden, tun Sie dies nutzen mögen, dass die Komponenten angezeigt werden in den Positionen, die du willst.

Sie sollten sich wahrscheinlich die Tutorials anschauen, die sich auf laying out components in containers beziehen.

0

Sie müssen eine Layout Manager auswählen und setLayout entsprechend anrufen.

0

Verwenden Sie .setBounds für jedes Element, das Sie zu Ihrer Szene hinzufügen, oder verwenden Sie ein anderes Layout, z. B. Rasterlayout, um Ihre UI-Elemente zu positionieren. Das Problem entsteht, wenn Sie ein neues Element hinzufügen, das über das vorherige hinausgeht.