Umgang mit Graphics unklar : Erstellung u Uebergabe an Funktion

wolf_703

Mitglied
moin,
im Rahmen meines Spielprojektes "Boeing Cockpit Flugsimulator" werden ein PC/Laptop/miniPC und
ein Arduino nano fuer das Steuer verwendet.
Dafuer benoetige ich im Wesentlichen einen künstlichen Horizont und einen Radarkompass.
Im Original sieht der künstliche Horizont so aus :
Cockpit_Boeing787-9_img1.jpg

was ich hier evtl so darstellen könnte :
screenshot_polygon4artific_horizon2_reduced.jpg

der Horizont ist natuerlich beweglich, gesteuert durch Datenuebernahme von einem Arduino Nano,
der die Stellung von Potentiometern abliest und als Datenstrings uebermittelt. Zur Programmierung in Java wurde
aber erstmal eine Simulationsfunktion simulate_horizon_gliding(Graphics g) angelegt.

Insgesamt gibt es 6 nebeneinanderliegende Panels mit
Geschwindigkeit, kuenstl.Horizont,Flughoehe,Radarkompass, Zeitanzeige, Maschinenparameter
sowie ein darueberliegendes breites Panel mit ILS-Daten und Autopilotdaten usw,
und ein darunterliegendes breites Panel fuer checklists, Taxiway-Daten usw.

Zur weiteren Info bitte mal die zahlreichen Youtube-Filme (cabrides) anschauen, die gute Sichen
auf die Cockpit-Betandteile nebst zahlreichen Erklaerungen anbieten..

Da ich zwischendurch jetzt mal kurz raus muss, gehts im naechsten Beitrag weiter, sorry !
 

wolf_703

Mitglied
moin,
so jetzt gehts weiter !
Habe erstmal ein paar Dateien zum Mitlesen anzubieten:
Fsim_panels1 exportiertes Netbeans-8.1-Projekt in Zip : laesst sich hier Nicht beifuegen !?
Fsim_panels1.java
PolygonGenerator.java
jSerialComm-2.11.0.jar

hier der Code , um den es geht :
Java:
package fsim_panels1;

import java.awt.*;
import javax.swing.*;
import javax.swing.border.TitledBorder;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.concurrent.TimeUnit;

import com.fazecast.jSerialComm.*;

public class Fsim_Panels1 extends JFrame{

    /**
     * @param args the command line arguments
     */
    public static JPanel ptop  = null;    //-Panel fuer diverse Einstellungen (Flughoehe,Std.Geschwindigkeit usw
    
    public static JPanel phv = null;    //-Panel fuer Geschwindigkeitsanzeige
    public static JPanel phh = null;    //-Panel fuer Horizontanzeige
    public static JPanel pha = null;    //-Panel fuer Hoehenanzeige
    public static JPanel pk = null;     //-Panel fuer Kompassanzeige
    public static JPanel pm = null;     //-Panel fuer Maschinenanzeige
    public static JPanel pt = null;             //-Panel fuer Zeitanzeige
    
    public static JPanel pbottom  = null;       //-Panel fuer diverse Einstellungen (Flughoehe,Std.Geschwindigkeit usw   
    public static PolygonGenerator pg = null;   //- erzeugt Hintergrund und Trapez fuer den Vordergrund
    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) {
        JFrame fMain_frame = new JFrame("Main-Panel");
        fMain_frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        fMain_frame.setBounds(100, 100, 1000, 600);
        fMain_frame.setTitle("Boeing-Cockpit");
        fMain_frame.setBackground(Color.yellow);
        //fMain_frame.setLayout(new GridLayout(1,6));
        fMain_frame.setLayout(new BorderLayout());
        
        panel_top();
        fMain_frame.getContentPane().add(ptop,BorderLayout.NORTH);
        
        panel_velocity();
        fMain_frame.getContentPane().add(phv);
        panel_artific_horizon();
        fMain_frame.getContentPane().add(phh);
        panel_altitude();
        fMain_frame.getContentPane().add(pha);       
        panel_kompass();
        fMain_frame.getContentPane().add(pk); 
        panel_machine();
        fMain_frame.getContentPane().add(pm);         
        panel_time();
        fMain_frame.getContentPane().add(pt);         

        panel_bottom();
        fMain_frame.getContentPane().add(pbottom,BorderLayout.SOUTH);
        
        fMain_frame.revalidate();       
        fMain_frame.setVisible(true);
        simulate_horizon_gliding(Graphics g);
    }
        public static void panel_top() {
            ptop = new JPanel();
            ptop.setBackground(Color.PINK);
            ptop.setBounds(0, 0, 0, 50);
            ptop.setLayout(new BorderLayout());
            JLabel lblFirst = new JLabel("several items"); 
            lblFirst.setHorizontalTextPosition(JLabel.CENTER);
            lblFirst.setVerticalTextPosition(JLabel.TOP);
            lblFirst.setBorder(new TitledBorder("panel_top"));
            ptop.add(lblFirst);
            ptop.revalidate();
            ptop.setVisible(true);
    }   

    public static void panel_velocity() {
            phv = new JPanel();
            phv.setBackground(Color.red);
            phv.setBounds(0, y_startline_high_parts+y_high_parts, 100, h_high_parts);
            phv.setPreferredSize(new Dimension(100, h_high_parts));
            phv.setLayout(new BorderLayout());
            JLabel lblFirst = new JLabel("kt/h"); 
            lblFirst.setHorizontalTextPosition(JLabel.CENTER);
            lblFirst.setVerticalTextPosition(JLabel.TOP);
            lblFirst.setBorder(new TitledBorder("panel_velocity"));
            phv.add(lblFirst);
            phv.revalidate();
            phv.setVisible(true);
    }
    
    public static void panel_artific_horizon() {
            phh = new JPanel();
            phh.setBackground(Color.BLACK);
            phh.setBounds(100, y_startline_high_parts+y_high_parts, 300, h_high_parts);
            phh.setPreferredSize(new Dimension(300, h_high_parts));
            phh.setLayout(new BorderLayout());
            /*
            JLabel lblFirst = new JLabel("alt.position"); 
            lblFirst.setHorizontalTextPosition(JLabel.CENTER);
            lblFirst.setVerticalTextPosition(JLabel.TOP);
            lblFirst.setBorder(new TitledBorder("panel_horizon"));
            phh.add(lblFirst);
            */
            PolygonGenerator pg = new PolygonGenerator();
            phh.add(pg);
            phh.revalidate();
            phh.setVisible(true);
    }
    
    public static void panel_altitude() {
            pha = new JPanel();
            pha.setBackground(Color.BLUE);
            pha.setBounds(400, y_startline_high_parts+y_high_parts, 100, h_high_parts);
            pha.setPreferredSize(new Dimension(100, h_high_parts));
            pha.setLayout(new BorderLayout());
            JLabel lblFirst = new JLabel("feet"); 
            lblFirst.setHorizontalTextPosition(JLabel.CENTER);
            lblFirst.setVerticalTextPosition(JLabel.TOP);
            lblFirst.setBorder(new TitledBorder("altitude"));
            pha.add(lblFirst);
            pha.revalidate();
            pha.setVisible(true);
    }
    
    public static void panel_kompass() {
            pk = new JPanel();
            pk.setBackground(Color.CYAN);
            pk.setBounds(500, y_startline_high_parts+y_high_parts, 300, h_high_parts);
            pk.setPreferredSize(new Dimension(300, h_high_parts));
            pk.setLayout(new BorderLayout());
            JLabel lblFirst = new JLabel("direction"); 
            lblFirst.setHorizontalTextPosition(JLabel.CENTER);
            lblFirst.setVerticalTextPosition(JLabel.TOP);
            lblFirst.setBorder(new TitledBorder("panel_kompass"));
            pk.add(lblFirst);
            pk.revalidate();
            pk.setVisible(true);
    }

    public static void panel_machine() {
            pm = new JPanel();
            pm.setBackground(Color.ORANGE);
            pm.setBounds(800, y_startline_high_parts+y_high_parts, 100, h_high_parts);
            pm.setPreferredSize(new Dimension(100, h_high_parts));
            pm.setLayout(new BorderLayout());
            JLabel lblFirst = new JLabel("machine"); 
            lblFirst.setHorizontalTextPosition(JLabel.CENTER);
            lblFirst.setVerticalTextPosition(JLabel.TOP);
            lblFirst.setBorder(new TitledBorder("panel_machine"));
            pm.add(lblFirst);
            pm.revalidate();
            pm.setVisible(true);
    }
    public static void panel_time() {
            pt = new JPanel();
            pt.setBackground(Color.GREEN);
            pt.setBounds(900, y_startline_high_parts+y_high_parts, 100, h_high_parts);
            pt.setPreferredSize(new Dimension(100, h_high_parts));
            pt.setLayout(new BorderLayout());
            JLabel lblFirst = new JLabel("flyer-time"); 
            lblFirst.setHorizontalTextPosition(JLabel.CENTER);
            lblFirst.setVerticalTextPosition(JLabel.TOP);
            lblFirst.setBorder(new TitledBorder("panel_time"));
            pt.add(lblFirst,BorderLayout.EAST);
            pt.revalidate();
            pt.setVisible(true);
    }
    
    public static void panel_bottom() {
            pbottom = new JPanel();
            pbottom.setBackground(Color.MAGENTA);
            pbottom.setBounds(0, 0, 0, 50);
            pbottom.setLayout(new BorderLayout());
            JLabel lblFirst = new JLabel("several items"); 
            lblFirst.setHorizontalTextPosition(JLabel.CENTER);
            lblFirst.setVerticalTextPosition(JLabel.TOP);
            lblFirst.setBorder(new TitledBorder("panel_bottom"));
            pbottom.add(lblFirst);
            pbottom.revalidate();
            pbottom.setVisible(true);
    }   
    
    public static void simulate_horizon_gliding(Graphics g){
        Color c_brown = new Color(128,128,110);
        Color c_blue_light = new Color(176,224,250);
        int y_baseline = 5;
        int win_width = 400;
        int numberofpoints = 4;         
        int border_point_left = 5;
        
        int[] border_points_y = {0,60,80};
        // x coordinates of vertices
        int x[] = { border_point_left, border_point_left, win_width, win_width};
        int y[] = { border_points_y[0]+y_baseline, border_points_y[1]+y_baseline, border_points_y[2]+y_baseline, border_points_y[0]+y_baseline };         
        int i = 0;
        for(i=0;i < 10;i++)
        {
            y[1] = border_points_y[1]+y_baseline+i;
            y[2] = border_points_y[2]+y_baseline-i;
            pg.neu_zeichnen(g,5,400,c_brown,4,x,y);
            try{
                TimeUnit.SECONDS.sleep(1000);
        }catch(InterruptedException e){}                 
        }
        
    }

Problem ist die Zeile :
Code:
public static void simulate_horizon_gliding(Graphics g){
hab schon einiges probiert, aber kriege Nicht die Uebergabe von Graphics hin..
evtl hab ich "Tomaten auf den Augen"😄
Netscape schlaegt vor
Code:
import java.awt.Graphics.*;
hilft garnix..

wer wer weiss Rad ?
 

Anhänge

  • Fsim_Panels1.java
    10,9 KB · Aufrufe: 0
  • jSerialComm-2.11.0.jar
    864,2 KB · Aufrufe: 0
  • PolygonGenerator.java
    1,3 KB · Aufrufe: 0

wolf_703

Mitglied
Hab mal was probiert:
Java:
public static void simulate_horizon_gliding(){
       
        pg = new PolygonGenerator(); //- <<-- wird das Objekt Nicht erzeugt ?
        Graphics g = pg.getGraphics();
        Color c_brown = new Color(128,128,110);
        Color c_blue_light = new Color(176,224,250);
        int y_baseline = 5;
        int win_width = 400;
        int numberofpoints = 4;        
        int border_point_left = 5;
       
        int[] border_points_y = {0,60,80};
        // x coordinates of vertices
        int x[] = { border_point_left, border_point_left, win_width, win_width};
        int y[] = { border_points_y[0]+y_baseline, border_points_y[1]+y_baseline, border_points_y[2]+y_baseline, border_points_y[0]+y_baseline };        
        int i = 0;
        for(i=0;i < 10;i++)
        {
            y[1] = border_points_y[1]+y_baseline+i;
            y[2] = border_points_y[2]+y_baseline-i;
            pg.neu_zeichnen(g,5,400,c_brown,4,x,y); //<<-- hier NullpointerException !?
            try{
                TimeUnit.SECONDS.sleep(1000);
        }catch(InterruptedException e){}                
        }
       
    }

verstehe nur noch Bahnhof !
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Umgang mit dem Type "Date" Java Basics - Anfänger-Themen 6
julian112 Input/Output .gz bzw. .txt Datei Einlesen und Umgang mit Exceptions Java Basics - Anfänger-Themen 1
X Probleme im Umgang mit PriorityQueue Java Basics - Anfänger-Themen 75
O Umgang mit Vererbung verstehen Java Basics - Anfänger-Themen 4
N Umgang mit Domain Framework Java Basics - Anfänger-Themen 2
J Umgang mit System.out.println() und .print() Java Basics - Anfänger-Themen 6
F Umgang mit referenzierten Objekten bei ArrayList Java Basics - Anfänger-Themen 1
C Hilfe für Kommentar-Zapper gesucht / Umgang mit Console Java Basics - Anfänger-Themen 0
M Umgang mit Thread/ Synchronisation/ Deadlock-Vermeidung Java Basics - Anfänger-Themen 5
J Umgang mit großen Datenmengen Java Basics - Anfänger-Themen 9
B Hilfe mit dem umgang von vererbung Java Basics - Anfänger-Themen 3
G Erste Schritte Fragen zum Umgang mit CSV Java Basics - Anfänger-Themen 2
M Verständnisfrage im Umgang mit Map Java Basics - Anfänger-Themen 10
J Effizienter Umgang mit großen Dateien Java Basics - Anfänger-Themen 7
I Umgang mit ByteBuffer Java Basics - Anfänger-Themen 11
I [Java] Umgang mit abstrakten Klassen, Interfaceklassen (BSP) Java Basics - Anfänger-Themen 12
M Der Umgang mit Iterator - Wie ein Objekt aus einer ArrayList Java Basics - Anfänger-Themen 2
J Umgang mit klassen ? Java Basics - Anfänger-Themen 3
J Umgang mit SQL Connections Java Basics - Anfänger-Themen 3
C Umgang mit Dateien Java Basics - Anfänger-Themen 4
G Umgang mit CSV-Dateien Java Basics - Anfänger-Themen 17
M HILFE JPanel - Graphics Java Basics - Anfänger-Themen 1
H Eingabe tätigen bevor Graphics g Fenster öffnet Java Basics - Anfänger-Themen 5
I Java Klassen "Graphics" und "MouseEvent" kombinieren Java Basics - Anfänger-Themen 7
CptK Interface Bilder mit Graphics g zeichnen Java Basics - Anfänger-Themen 7
J Erste Schritte drawLine Methode der Graphics Klasse Java Basics - Anfänger-Themen 2
J GUI / Graphics Java Basics - Anfänger-Themen 2
H Graphics / repaint Java Basics - Anfänger-Themen 8
K Zwei Fragen zu Graphics/Graphics2D Java Basics - Anfänger-Themen 5
R Cast java.awt.Graphics Java Basics - Anfänger-Themen 7
Azazel (Anfängerhilfe) awt.Graphics Schwierigkeiten Java Basics - Anfänger-Themen 6
I Methoden public void paintComponent (Graphics g) Java Basics - Anfänger-Themen 4
B Erste Schritte Anzeige von Graphics Objekten einzeln aktualisieren Java Basics - Anfänger-Themen 1
S Farbige Lebensleiste mit Graphics? Java Basics - Anfänger-Themen 10
S Ein Graphics Obejct mehrmals mit denselben Eigenschaften zeichnen lassen?!?!? Java Basics - Anfänger-Themen 4
S G Graphics Java Basics - Anfänger-Themen 1
thet1983 g.Graphics löschen? Java Basics - Anfänger-Themen 1
M Probleme mit paint() aus java.awt.Graphics Java Basics - Anfänger-Themen 2
A EAN13 Font auf graphics g erzeugt Monospaces Java Basics - Anfänger-Themen 14
N Graphics to png Java Basics - Anfänger-Themen 10
N Methode draw(Graphics g) aufrufen Java Basics - Anfänger-Themen 6
Dogge Problem mit paint(Graphics g) im Applet Java Basics - Anfänger-Themen 13
J Problem mit paint(Graphics g) Java Basics - Anfänger-Themen 4
J Jtable änderung soll graphics aktualisieren Java Basics - Anfänger-Themen 4
J JAVA Graphics Java Basics - Anfänger-Themen 5
A Graphics Objekt verhält sich merkwürdig Java Basics - Anfänger-Themen 2
G DRUCKEN von z.B. eines JFrame über print(Graphics g) Java Basics - Anfänger-Themen 9
Maxim6394 Probleme mit Graphics Java Basics - Anfänger-Themen 7
W von Graphics in BufferedImage Java Basics - Anfänger-Themen 10
M OOP Graphics immer selbstbezihend Java Basics - Anfänger-Themen 12
K Problem mit Parameter von paint(Graphics g) Java Basics - Anfänger-Themen 3
T Transparente Bilder mit Graphics zeichnen Java Basics - Anfänger-Themen 17
H Probleme mit Graphics G Java Basics - Anfänger-Themen 2
M Schiebepuzzle: MouseListener und Graphics? Java Basics - Anfänger-Themen 6
J Graphics g Java Basics - Anfänger-Themen 4
H Probleme mit Graphics Java Basics - Anfänger-Themen 5
B MouseListener & Graphics Java Basics - Anfänger-Themen 10
M Graphics zeichnen Java Basics - Anfänger-Themen 2
F Graphics PDFBox Java Basics - Anfänger-Themen 9
M kurze Frage zu Graphics Java Basics - Anfänger-Themen 5
Luk10 Buch für Swing/Awt/Graphics Java Basics - Anfänger-Themen 4
M Java Graphics etc. Java Basics - Anfänger-Themen 2
M Concurrency und Graphics Java Basics - Anfänger-Themen 9
F Was ist Graphics g wirklich? Java Basics - Anfänger-Themen 5
J Klasse Graphics Nullpointerexception Java Basics - Anfänger-Themen 8
P Frage zu Graphics Java Basics - Anfänger-Themen 2
O graphics methode zeigt mein bild nicht an Java Basics - Anfänger-Themen 7
F Zweite Graphics-Methode wird nicht ausgeführt Java Basics - Anfänger-Themen 4
T rotes herz public void paint(Graphics g) Java Basics - Anfänger-Themen 2
G paintComponent(Graphics g) Java Basics - Anfänger-Themen 2
eQui Oberfläche mit Graphics zeichnen Java Basics - Anfänger-Themen 11
S Dicke bei Graphics Ovject einstellen Java Basics - Anfänger-Themen 2
V KSKB zum Verständnis von Graphics und paintComponent Java Basics - Anfänger-Themen 6
G mit Graphics erzeugte Strings verschwinden sofort wieder Java Basics - Anfänger-Themen 7
T Graphics von java.awt.Frame soll sich inhalt merken Java Basics - Anfänger-Themen 3
G Graphics-Object skalieren Java Basics - Anfänger-Themen 9
G Constructor & Graphics g Java Basics - Anfänger-Themen 5
F Frage zum Graphics Objekt Java Basics - Anfänger-Themen 3
D Instanz von Graphics in run() Java Basics - Anfänger-Themen 8
B Mouseevents und Graphics Java Basics - Anfänger-Themen 11
D Abstrakte Klasse Graphics Java Basics - Anfänger-Themen 3
W Verständisfrage zu Graphics Objekt Java Basics - Anfänger-Themen 3
P umwandeln von graphics nach image Java Basics - Anfänger-Themen 4
A Graphics g, AdjustmentEvent e Java Basics - Anfänger-Themen 5
Dilandau paint(Graphics g) { unbekannt in try{} / catch{} }? Java Basics - Anfänger-Themen 5
S Graphics Java Basics - Anfänger-Themen 11
J Fehlermeldung unklar. non-static variable player0 cannot be referenced from a static context Java Basics - Anfänger-Themen 4
B Code Zeile unklar Java Basics - Anfänger-Themen 9
A Nächstes Datum ausgeben, if-Schleife unklar Java Basics - Anfänger-Themen 6
N Aufagabenstellung unklar Java Basics - Anfänger-Themen 8
J Methoden Math.random unklar Java Basics - Anfänger-Themen 4
M Javaklasse unklar Java Basics - Anfänger-Themen 3
A Fehlermeldung Unklar, google hilft auch nicht weiter Java Basics - Anfänger-Themen 2
A Fehlermeldung Unklar. Java Basics - Anfänger-Themen 1
M Throws Anweisung innerhalb eines Methodenkopfes unklar Java Basics - Anfänger-Themen 4
M This Methode unklar Java Basics - Anfänger-Themen 2
M Arithemtischer Ausdruck unklar Java Basics - Anfänger-Themen 2
K Maven Dependency unklar Java Basics - Anfänger-Themen 5
K .Class Operator unklar Java Basics - Anfänger-Themen 3
K Schnittstelle - Interface unklar Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben