Ich habe hier den Auszug aus einer main-Methode die die Methode praesentiere() einer Klasse aufruft. Ich erwarte, dass ein Frame mit einem schwarzen Panel angezeigt wird. Tatsächlich wird nur der Frame ohne Panel angezeigt. Die Funktion praesentiere soll eigentlich was anderes bzw. noch mehr machen, ich habe sie nur mal auf das nötigste reduziert um den Fehler einzugrenzen.
Ich habe zum ausprobieren mal eine Testklasse entworfen, die einwandfei funktioniert:
Meinem Verständnis nach, enthält die Testklasse nichts was im eigentlichen Programm nicht enthalten wäre. Ich erzeuge ein neues Panel (new) , färbe es schwarz (setBackground), mache es sichtbar (SetVisible) und füge es dem Frame hinzu (add). Auch wenn man den Frame nach dem hinzufügen des Panels noch mal "zum aktualisieren" neu aus visible setzt ändert sich nichts.
Java:
public static void main(String[] args) throws InterruptedException{
JFrame frame = new JFrame();
//frame.setLayout(new FlowLayout());
frame.setExtendedState(Frame.MAXIMIZED_BOTH);
frame.setVisible(true);
QuadrSequenz sequenz1 = new QuadrSequenz(4);
sequenz1.praesentieren(frame);
frame.setVisible(true);
}
Java:
public void praesentieren(JFrame window) throws InterruptedException {
JFrame w = window;
JPanel panel = new JPanel();
panel.setBackground(Color.BLACK);
panel.setVisible(true);
w.add(panel);
Ich habe zum ausprobieren mal eine Testklasse entworfen, die einwandfei funktioniert:
Java:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.*;
public class Test {
public static void main(String[] args){
JFrame frame = new JFrame();
frame.setVisible(true);
//frame.setLayout(new FlowLayout());
JPanel panel = new JPanel();
panel.setVisible(true);
panel.setBackground(Color.BLACK);
//panel.setPreferredSize(new Dimension(100, 100));
frame.add(panel);
}
}
Meinem Verständnis nach, enthält die Testklasse nichts was im eigentlichen Programm nicht enthalten wäre. Ich erzeuge ein neues Panel (new) , färbe es schwarz (setBackground), mache es sichtbar (SetVisible) und füge es dem Frame hinzu (add). Auch wenn man den Frame nach dem hinzufügen des Panels noch mal "zum aktualisieren" neu aus visible setzt ändert sich nichts.