hallo,
ich komme nicht weiter : habe einen Frame, in den 2 Panels integriert sind :
SettingsPanel
GrafPanel1
das sieht jetzt so aus
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 ?