Java Frame bzw Panel : wieso kein Element in obererm Panel sichtbar?

hallo,
ich komme nicht weiter : habe einen Frame, in den 2 Panels integriert sind :
SettingsPanel
GrafPanel1

das sieht jetzt so aus
screenshotfsim_live_31102024_reduced

der schwarze hintergrund ist vom GrafikPanel1,
der helle ist vom SettingsPanel

dort ist kein Inhalt zu sehen, obwohl ein JLabel zu sehen sein müßte…

im Code sieht das so aus
/* Fsim_singlePanel1.java

  • Erstellen der Cockpit-Situation von z.B. Boeing 787-9
  • Steurung von Arduino-Nano ueber USB
  • Status : 31.10.2024
  • Autor : W.W.Fietz Hofbieber
    */

package fsim_singlepanel1;

import java.awt.;
import java.awt.Graphics.
;
import javax.swing.*;
import javax.swing.border.TitledBorder;
import java.awt.Toolkit; //- fuer Screensize();

public class Fsim_singlePanel1 extends JFrame{

/**
 * @param args the command line arguments
 */
public static JPanel pas = null;    //-Panel fuer Setzen von Flughoehe,ILS,Autopilot usw
public static JPanel pai = null;    //-Panel fuer Horizontanzeige

public static SettingsPanel ps = null;  //- erzeugt Panel fuer Einstellungsleiste fuer ILS usw.
public static GrafPanel1 pg = null;   //- erzeugt Hintergrund und Trapez fuer den Vordergrund fuer kuenstl.Horizont

public static int screenSize_x = 0;
public static int screenSize_y = 0;

public static int y_high_parts = 0;         //- die hohen Panes fuer Horizont usw
public static int h_high_parts = 490;       //- dito
public static int y_startline_high_parts = 35;  //- dito


public static void main(String[] args) {

    screenSize_x = Toolkit.getDefaultToolkit().getScreenSize().width;
    screenSize_y = Toolkit.getDefaultToolkit().getScreenSize().height;
    
    JFrame fMain_frame = new JFrame("Main-Panel");
    fMain_frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    fMain_frame.setBounds(10, 50, screenSize_x - 20, screenSize_y );
    fMain_frame.setPreferredSize(new Dimension(screenSize_x - 20,screenSize_y-200));
    
    fMain_frame.setTitle("Boeing-Cockpit");
    fMain_frame.setBackground(Color.yellow);
    fMain_frame.setLayout(new BorderLayout());    
    
    panel_all_settings();
    fMain_frame.getContentPane().add(pas,BorderLayout.NORTH);   
    
    panel_all_instruments();
    fMain_frame.getContentPane().add(pai,BorderLayout.CENTER);
    
    fMain_frame.pack();
    
    fMain_frame.revalidate();        
    fMain_frame.setVisible(true);

    ps = new SettingsPanel();
    pas.add(ps);
   
    pg = new GrafPanel1();
    pai.add(pg);
    
}

public static void panel_all_settings() {
        pas = new JPanel();
        pas.setBackground(Color.RED);   //spielt keine Rolle ?
        pas.setForeground(Color.WHITE); //spielt keine Rolle ?
        
        pas.setBounds(0, 0, 100, screenSize_x);
        pas.setPreferredSize(new Dimension(screenSize_x, 100));
        pas.setLayout(new BoxLayout(pas,BoxLayout.X_AXIS));

        pas.revalidate();
        pas.setVisible(true);
}


public static void panel_all_instruments() {
        pai = new JPanel();
        pai.setBackground(Color.BLACK);
        pai.setBounds(100, y_startline_high_parts+y_high_parts, 300, h_high_parts);
        pai.setPreferredSize(new Dimension(300, h_high_parts));
        pai.setLayout(new BorderLayout());
        
        pai.revalidate();
        pai.setVisible(true);
}

}

in der Datei zum SettingsPanel sieht es so aus
/* SettingsPanel.java

  • Erstellen der Cockpit-Situation von z.B. Boeing 787-9
  • Steurung von Arduino-Nano ueber USB
  • Status : 31.10.2024
  • Autor : W.W.Fietz Hofbieber
    */
    package fsim_singlepanel1;

import static fsim_singlepanel1.Fsim_singlePanel1.pas;
import static fsim_singlepanel1.Fsim_singlePanel1.screenSize_x;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.JTextField;

public class SettingsPanel extends JPanel {
public void generate()
{
setBackground(Color.GREEN); //spielt keine Rolle ?
setForeground(Color.ORANGE); //spielt keine Rolle ?

    JLabel lblFlightheightCorridor = new JLabel("Flughöhenkorridor");
    lblFlightheightCorridor.setBounds(5, 5, 100, 10);
    lblFlightheightCorridor.setPreferredSize(new Dimension(100,10));
    lblFlightheightCorridor.setBackground(Color.RED);
    
    add(lblFlightheightCorridor);
    /*
    add(new JButton("click"));
    JTextField field = new JTextField("Textfeld");
    */
    revalidate();
    setVisible(true);
    
}        

}

aber warum funzt nur das GrafikPanel1, nicht aber das SettingsPanel ? Dort sieht man garnix…weiter…

Leider scheint es hier Nicht die Möglichkeit zu geben , das mit NetBeans entwickelte Projekt
als zip bereit zu stellen…

bleibt mir nur, wenigstens andeutungsweise noch die Grafik-Datei zu zeigen
package fsim_singlepanel1;

import com.fazecast.jSerialComm.SerialPort;
import static fsim_singlepanel1.Fsim_singlePanel1.pg;
import static fsim_singlepanel1.Fsim_singlePanel1.screenSize_x;
import static fsim_singlepanel1.Fsim_singlePanel1.screenSize_y;

import java.awt.*;
import java.awt.Color;
import java.awt.Graphics;

.
.
.
public class GrafPanel1 extends Canvas{

static final boolean simulation_on = false;
static final boolean funcs_log = false;

static boolean flyer_turning = false;	//Kurvenflug

.
.
.
. public void paint(Graphics g) {
g.setColor(Color.GRAY);
int main_border_gap = 5;
g.drawRect(main_border_gap, main_border_gap, screenSize_x - main_border_gap, screenSize_y - main_border_gap);
g.setColor(Color.YELLOW);

    //- Kopmpass-Bild holen und ziechnen -------
    load_and_draw_kompass_hg(g);        
    //- Teile des Kompass-HG ausblenden --------
    omit_kompass_parts(g);
    omit_kompass_mainarea(g);

ENTE

was mache ich beim Panel-Aufbau falsch ?

hi,
werde mich am Sonntag drum kümmern, wie diese Dateien öffentlich zugänglich gemacht werden können.
Derzeit ist DropBox meine Wahl, aber ich weiß noch nicht, wie man die Dateien dort öffentlich macht, die Ausdrucksweise und Optionen sind mir NIcht verständlich…
Brauche momentan DropBox auch als Datensicherung und Transport auf neuere Festplatte,
die bisherige scheint ihren Geist nach mindestens 10 Jahren Dienst so langsam aufzugeben :frowning_face: