Welche Methode in JFrame überschreiben?

Status
Nicht offen für weitere Antworten.

siriuswhite

Aktives Mitglied
Hi ich bin im Moment an einer java3D Anwendung am schreiben und habe eine Klasse die von JFrame erbt und intern den Canvas3D addet(mit this.add(canvas))
Jetzt will ich die FPS-Rate einbauen und muss dazu natürlich was auf den Bildschirm schreiben und da kommt meine Frage: gibt es da eine Methode die ich überschreiben muss (wie bei JPanel paintComponent(Graphics g)) oder muss ich da am Canvas3D was machen oder wie geht das?

Im voraus schonmal danke für eure Hilfe
 

icarus2

Top Contributor
Also ich würde die frames per second so berechnen:

Diese hier als Instanzvariablen deklairieren.

[Java]
private long delta = 0;
private long last = 0;
private long fps = 0;

[/Java]

Dann würde ich eine Methode vorschlagen, die das ganze berechnet.

[Java]
private void computeDelta(){
delta = System.nanoTime() - last;
last = System.nanoTime();

fps = ((long) 1e9) / delta;
}
[/Java]

Dann kannst ja immer noch z.B. in der paint-Methode folgendes machen:

[Java]
g.drawString("FPS: " + fps, 10, 10);
[/Java]

Edit:
Du wirst dann ja immer eine Schleife haben. Bei jedem neuen Schleifendurchlauf einfach kurz die Methode computeDelta() aufrufen. Die Variable delta kannst du anschliessend für eine flüssige Bildbewegung verwenden, da die Bewegung dann abhängig von der Bildrate ist ==> flüssige Bewegung, aber das nur so am Rande.
 
Zuletzt bearbeitet:

siriuswhite

Aktives Mitglied
WIe man die FPS berechnet weiß ich schon es geht nur darum wie ich sie auf den Bildschirm bringe
Was ich so aus deinem Beitrag rauslese heißt ich soll also die paint Methode überschreiben?
 

icarus2

Top Contributor
Also wenn du AWT verwendest, Canvas ist AWT, dann musst du die Methode paint(Graphics g) überschreiben.

z.B. so:

[Java]
@Override
public void paint(Graphics g){
g.drawString("FPS: " + fps, 10, 10);
}
[/Java]


Bei Swing immer paintComponent überschreiben:

[Java]
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);

//do something
}
[/Java]
 

icarus2

Top Contributor
Hmm, da bin ich leider etwas überfragt, hab die Klasse selber noch nie verwendet.

Probiers doch kurz aus und wenns net geht dann hats hier viel Leute, die viel mehr wissen als ich ;-)
 

Marco13

Top Contributor
Das sollte grundsätzlich möglich sein. Ich will nicht sagen, dass das "heikel" ist, aber ... WAS genau so ein Canvas3D macht, um seine Daten auf den Bildschirm zu bringen, weiß man erstmal nicht. Trotzdem... es sollte wohl gehen.

Allerdings würde es ohne
Code:
public void paint(Graphics g)
{
    super.paint(g); //--------------------------------- Das hier
    g.drawString("FPS: " + fps, 10, 10);
}
vielleicht etwas langweilig aussehen :D
 

icarus2

Top Contributor
Joar, wäre ein bisschen hässlich ^^

Obwohl in meinem ersten Buch, das ich von einer Hochschule hatte (nein, bin selber noch am Gimi), nie super.paint(g); aufgerufen wurde, was eigentlich doch recht merkwürdig ist.
 

Marco13

Top Contributor
Jo, wenn mich nicht alles täuscht ist das paint(g) bei einem AWT Canvas auch leer (oder macht nur ein clearen des Backgrounds). Aber bei einem Canvas3D wird da bestimmt noch einiges gemacht. Um wirklich definitiv sagen zu können, dass das in Ordnung ist, müßte man sich eigentlich nochmal den Quellcode genauer ansehen - d.h. WO genau dort das eigentliche native painten getriggert wird. Aber wer weiß ob das helfen würde. Ausprobieren geht sicher schneller :D
 

siriuswhite

Aktives Mitglied
Also wenn ich das nach eurem Vorschlag mache zeichnet der zwar den Wert aber das SimpleUniverse das ich benutze klatscht schwarze Fläche drüber und man sieht es nimmer es bringt auch nichts die Schriftfarbe zu ändern
Ich hatte im Tutorial allerdings nur mit SimpleUniverse zu tun und weiß jetzt auch nicht wie man das jetzt so konfiguriert dass es transparent ist weiß dass vielleicht einer?
 

siriuswhite

Aktives Mitglied
Ok die Frage hat siche rledigt ich hab in dem Tutorial doch noch wa sgefunden hab leider nach dem falschen STichwort gesucht

Damit alle die das selbe Problem haben nicht fragen müssen hier die Lösung:
Canvas3D vollzieht keine Größenänderung mit dem restlichen Fenster
Da braucht man eine JScrollPane ohne Scrollbar und Border- ist also unsichtbar
Dann einen Listener der alle Veränderungen an der ScrollPane auf den Canvas3D überträgt
Damit ist das Thema geklärt

EDIT: Ich hab jetzt die FPS-Rate mir einem JLAbel das untendrunter (auf der Position SOuth hängt) gelöst
mit der PAint-Sache klappt es nicht
Weiß da einer wie das geht?
 
Zuletzt bearbeitet:

Marco13

Top Contributor
Ja, mit sowas musste man zumindest rechnen. In einem Canvas3D wird beim painten eben SEHR viel mehr gemacht als in einem normalen Canvas. Da werden munter Buffer gefüllt und geswappt, und es kann eben sein, dass das, was man in der paint-Methode malt, im falschen (oder garkeinem?) Buffer landet. Wie auch immer. So geht's:
Code:
    Canvas3D canvas3D = new Canvas3D(SimpleUniverse.getPreferredConfiguration(), false)
    {
        public void postRender()
        {
            super.postRender();
            J3DGraphics2D g = getGraphics2D();
            if (g != null) // Weiß nicht ob die Abfrage notwendig ist!?
            {
                g.setColor(Color.WHITE);
                g.drawString("FPS: "+fps, 10, 20);
                g.flush(false);
            }
        }
    };
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
Jambolo Methode, welche die 3 letzten Parameter Werte speichert Java Basics - Anfänger-Themen 20
L Welche Methode? Java Basics - Anfänger-Themen 7
TheMenox Methoden Bestimmung an welche Methode eine andere Methode ihren Wert weitergeben soll Java Basics - Anfänger-Themen 35
G Lambda Ausdruck: Welche Methode ist die Richtige? Java Basics - Anfänger-Themen 1
Z Methoden Zugriff mit Klasse 3 auf Methode von Klasse 2 welche in Klasse 1 erzeugt wird Java Basics - Anfänger-Themen 6
V welche Methode am besten sich für JPG einfügung in Java anzugewöhnen ? Java Basics - Anfänger-Themen 4
P Welche Methode damit ich rausfinde auf welchem Laufwerk. Java Basics - Anfänger-Themen 8
T Aufruft Methode, welche Parameter fehlen? Java Basics - Anfänger-Themen 4
C Java Array Struktur, welche ist wann besser? Java Basics - Anfänger-Themen 12
N Welche Objekte kann man zu einem Set hinzufügen Java Basics - Anfänger-Themen 4
berserkerdq2 Habe zwei exceptions, welche ist ein Kommunikationsfehler und welche ein Ausgabefehler? Java Basics - Anfänger-Themen 4
G Welche Attribute kommen in den Konstruktor? Java Basics - Anfänger-Themen 5
Q SMS basierte Applikationen, welche Programmiersprache? Java Basics - Anfänger-Themen 8
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1
D Welche GUI Library für eine Client Server Chat App Java Basics - Anfänger-Themen 14
H Welche Werte bei Objekterzeugung eingeben? Java Basics - Anfänger-Themen 2
Arita welche Fehler gibt es noch? wie kann ich es noch vervollständigen Java Basics - Anfänger-Themen 15
tony241188 Implementieren Sie die Klasse Hersteller, welche die folgenden Elektrogeräte produziert Java Basics - Anfänger-Themen 3
FelixN Teilsummenproblem / welche Datenstruktur Java Basics - Anfänger-Themen 2
P Welche Zeile in Tadople gibt einen compiler error? Java Basics - Anfänger-Themen 5
W Welche Komponente ist geeignet? Java Basics - Anfänger-Themen 1
A Welche Operation ist das? Java Basics - Anfänger-Themen 2
J Welche Java-Version installieren Java Basics - Anfänger-Themen 9
M Implementieren einer Datenstruktur, welche nur 5 Objekte speichert Java Basics - Anfänger-Themen 3
M Ausgabe einer Liste welche mehrere Stacks enthält Java Basics - Anfänger-Themen 3
K GUI Entwicklung - Welche Richtung passt für euch zum mobilen Zeitalter? Java Basics - Anfänger-Themen 4
T Datenbank | Welche am Sinnvollsten? Java Basics - Anfänger-Themen 5
S Welche Verteilung? Java Basics - Anfänger-Themen 1
O Methoden welche ich implementier Java Basics - Anfänger-Themen 11
A Wie erkennt die JVM welche class verwendet werden muss? Java Basics - Anfänger-Themen 3
M JDK installieren Welche Software bei XP? Java Basics - Anfänger-Themen 5
H Welche IDE zum Buch "Programmieren mit Java" von Reinhard Schiedermeier des Verlags Pearson Studium Java Basics - Anfänger-Themen 19
U Best Practice Fehleranalyse, welche Fehler macht Ihr beim Lernen bzw. auch später Java Basics - Anfänger-Themen 12
E jProgressbar, 6 Versuche, welche value angeben ? Java Basics - Anfänger-Themen 3
M Welche Entwicklungsumgebung? Java Basics - Anfänger-Themen 32
I Welche Schleife/Bedingung nehme ich her Java Basics - Anfänger-Themen 5
C Methoden Welche JSoup Methoden Und Parameter für diese HTML Tags Java Basics - Anfänger-Themen 4
K Erste Schritte Java lernen - Welche Bücher? Java Basics - Anfänger-Themen 1
P welche Komponente ist im Layout? Java Basics - Anfänger-Themen 2
K Methoden mit den Namen accept. Welche Funktion haben diese? Java Basics - Anfänger-Themen 2
J Welche Methoden laufen im neuen thread ?? Java Basics - Anfänger-Themen 9
S Welche Datenstruktur ist die optimalste um Funktionen fuer bestimmte Wertebereiche abzurufen..? Java Basics - Anfänger-Themen 5
G Welche Java-Version auf meinem Rechner? Java Basics - Anfänger-Themen 2
A Klassen welche Klassen importiert Eclipse automatisch Java Basics - Anfänger-Themen 2
M Welche externen Bibliotheken sind in Java sehr zu empfehlen? Java Basics - Anfänger-Themen 4
I Grafische Benutzeroberflächen - welche Komponente nehme ich am besten? Java Basics - Anfänger-Themen 13
G Welche JAVA IDE? Java Basics - Anfänger-Themen 3
S Klassen Zugriff auf Attribute einer zweiten Klasse, welche durch dritte gesettet wurden? Java Basics - Anfänger-Themen 2
E wann welche Konstanten verwenden? Java Basics - Anfänger-Themen 7
K Welche Java Version ist die richtige Java Basics - Anfänger-Themen 3
V Welche Exceptions müssen importiert werden? Java Basics - Anfänger-Themen 3
A Design Pattern - Welche? Java Basics - Anfänger-Themen 33
C Datenbank - Welche Java Basics - Anfänger-Themen 5
S Welche Art von Liste? Java Basics - Anfänger-Themen 3
S Eigene Exception Schreiben und Welche Auslösen wie ? Java Basics - Anfänger-Themen 7
A Wenn genau welche Liste verwenden? Java Basics - Anfänger-Themen 6
T Welche Schleife? Java Basics - Anfänger-Themen 6
P Java Stream, wann welche Stream verwenden? Java Basics - Anfänger-Themen 3
S Collections Welche Collection ist am geeignetsten? Java Basics - Anfänger-Themen 3
S Input/Output Welche Möglichkeiten Eingabe von User abfragen Java Basics - Anfänger-Themen 5
P Swing - Welche Klasse für ausgeben von Ergebnissen? Java Basics - Anfänger-Themen 3
R Welche Datenstruktor für diese Liste? Java Basics - Anfänger-Themen 6
B Erste Schritte Welche Kenntnisse brauche ich für diese Programmidee? Java Basics - Anfänger-Themen 4
P Vererbung herausfinden welche Klasse was erbt Java Basics - Anfänger-Themen 3
K welche art von Liste für TableModell Java Basics - Anfänger-Themen 2
D Welche API für komplexe XML-Struktur? Java Basics - Anfänger-Themen 25
S welche Programmstruktur? Java Basics - Anfänger-Themen 8
M Welche Datenbank? Java Basics - Anfänger-Themen 5
B Welche Themengebiete benötige ich? Java Basics - Anfänger-Themen 7
StupidAttack Gson, welche Datenstruktur? Java Basics - Anfänger-Themen 4
S Welche Collection kann sich selber sortieren? Java Basics - Anfänger-Themen 8
H Welche Art der Ein/Ausgabe Java Basics - Anfänger-Themen 2
D Welche Datenstruktur für welche Problemstellung? Java Basics - Anfänger-Themen 10
U Welche(s) Framework(s) wären geeignet? Java Basics - Anfänger-Themen 8
StrikeTom Welche Dateitypen unterstützt JMF (Java Media Framework)? Java Basics - Anfänger-Themen 6
S Welche Collection? Java Basics - Anfänger-Themen 5
A Welche UML Software benutzt ihr / ist empfehlenswert? Java Basics - Anfänger-Themen 2
N Welche Datenstukturen und Methoden Java Basics - Anfänger-Themen 3
L Auswahl auf welche Art gespeichert werden soll Java Basics - Anfänger-Themen 6
B Welche Java-Installation ist aktiv? Java Basics - Anfänger-Themen 2
B Finden gemeinsamer Kanten: welche Datenstruktur ? Java Basics - Anfänger-Themen 9
S Welche möglichkeiten gibt es eine Zahl zu spiegeln? Java Basics - Anfänger-Themen 17
U Welche Seite für Anfänger Java Basics - Anfänger-Themen 11
K Welche Entwicklungsumgebung für Einsteiger? Java Basics - Anfänger-Themen 16
S Webapplikation welche alternative zu gwt? Java Basics - Anfänger-Themen 2
cowabunga1984 Unit-Testing - Welche Testfälle sind relevant? Java Basics - Anfänger-Themen 4
H Designfrage: Welche Liste? Java Basics - Anfänger-Themen 3
Z Welche IO-Klasse verwenden? Java Basics - Anfänger-Themen 2
G Welche Datenstruktur ( Sets / Maps)? Java Basics - Anfänger-Themen 10
M Der Java Schlüsselwort null; ?Welche Anweisung und Sinn? Java Basics - Anfänger-Themen 12
G Herausfinden, welche Componente als LETZTES focus hatte Java Basics - Anfänger-Themen 2
H Welche PDF Biblothek? Java Basics - Anfänger-Themen 6
G Variable welche in anderer Klasse liegt, verändern. Java Basics - Anfänger-Themen 2
G Frage:Welche Methodne kann man eine Zahl bzw. ein String Java Basics - Anfänger-Themen 3
U Welche Datenstruktur soll ich nehmen? Java Basics - Anfänger-Themen 11
K Welche Exception? Java Basics - Anfänger-Themen 6
G Welche Datenstruktur ist hier die sinnvolste Java Basics - Anfänger-Themen 6
G welche Teile der api sind wichtig? Java Basics - Anfänger-Themen 3
K Welche methoden gibt es in Java um Zahlen von der Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben