Swing Komponente mit jogl

sibianu

Mitglied
Hallo, kann man irgendwie alle swing-Komponente mit Hilfe von opengl (jogl) zeichnen? Ich habe das Problem, dass ich manchmal sehr viele Panels hin und her bewegen muss und langsam kommt Java an ihre Grenzen so dass es anfängt zu ruckeln.
Ich habe auch swogl gefunden, hat aber nicht wirklich geklappt. Erstens bekam ich mein Panel nicht richtig angezeigt und zweitens waren die Bewegungen noch langsamer als vorher. Ausserdem unterstützt swogl nur jogl1.1
Ich suche also irgendwas womit ich das Zeichnen beschleunigen kann, da ich sehr viele und sehr komplexe java-Komponenten benutze.

Danke im voraus,
sibianu
 

Marco13

Top Contributor
Swogl ist auch nicht dafür gedacht, "mehr" Components darstellen zu könnten (als mit 2D) oder die Components "effizienter" darstellen zu lassen (als mit 2D) - sondern eben um Components in 3D darstellen zu können.

Um mal eine grobe Vorstellung zu bekommen: Wie viele Stellen hat die Zahl deiner Panels?
 

sibianu

Mitglied
Ich denke mal es bleibt gerade noch so im s-stelligen Bereich. Das Problem dabei ist, das ich jetzt ein paar Animationen eingebaut habe wo sich fast alle Panels auf einmal bewegen müssen und dann werden natürlich bei jedem Animation-Schritt alle repaintet. Obwohl mein Rechner recht performant ist fängt es an zu ruckeln, das Program soll aber auch auf schwächere Rechner laufen.

Gruß,
sibianu
 

sibianu

Mitglied
Oh, entschuldigung. Ich meinte, dass ich gerade noch in den 2-stelligen Bereich bleibe, kann allerdings auch weit drüber gehen. Die Probleme mit dem Ruckeln habe ich denke ich mal schon im 2-stelligen Bereich
 

Marco13

Top Contributor
Das "...worum es da geht" bezog sich z.B. auf die Frage, ob das alles eigene JPanels sein müssen, oder ob man nicht (wie etwa bei CellRenderern) einen "Stempel" dafür verwenden kann und so...
 

sibianu

Mitglied
Öhm, ich befürchte es müssen JPanels sein, es sind mehrere komplett verschiedene Komponente die JPanels beinhalten. Stell dir zum Beispiel einen Desktop vor wo mehrere Programme angezeigt werden. So sieht das Programm aus. Jetzt habe ich an der Seite einen ausklappbaren Menü, der beim Öffnen den ganzen Arbeitsbereich mit verschiebt, sprich die ganzen offenen Programme gleich mit. Durch das Verschieben des Hauptpanels müssen also bei jedem Schritt wo das Menü aufklappt auch alle Programme neu repaintet werden. Diese Programme können sehr einfach sein, mit nur 2-3 Panels, können aber auch sehr kompliziert aufgebaut werden und sehr viele Komponenten beinhalten.
Das mit dem Stempel habe ich ehrlich gesagt nicht verstanden, das klang aber so, als müsste man dafür die Panels ersetzen, was ich mir momentan leider sehr schwer vorstellen kann.

Gruß,
Sibianu
 

Marco13

Top Contributor
Das mit dem "Stempel" war eine Anlehnung an sowas wie das "ListCellRenderer" interface. Wenn man eine JList mit 1000 Einträgen hat, dann enthält die nicht 1000 Unter-Components, sondern nur EINE Component, die verwendet wird, um ALLE 1000 Einträge auf den Bildschirm zu malen.

Das passt bei dir jetzt evtl. nicht.

Eigentlich würde ich sagen: Ja, wenn man ein kompliziertes Programm mit SEHR vielen Components hat, dann WIRD das eben langsam... aber das ist eher eine Ausflucht, weil ich mir nicht vorstellen kann, wie man das "einfach so" schneller machen könnte....
 

Kr0e

Gesperrter Benutzer
Ein altbekanntes Problem, nicht war Marco13 ? :p (Swogl ist trotzdem cool ;))

@ sibianu:

Nimm eine 3D Gui wie FengGUI oder TWL. ICh hab mir auch daran die Zähne ausgebissen. Swing ist einfach für Java2D und egal was man macht, es wird nie so schnell sein (Nichtmal annähernd) wie java2d.

3DGui's sind in OpenGL geschrieben, komplizierter zu benutzen, meist ohne GUI-Editor und nebenbei meist noch in einem Betastadium.
Es gibt einfahc noch keine perfekte lösung dafür.

Gruß,
Chris
 

sibianu

Mitglied
Meine Idee war, dass wenn ich die Komponenten mit opengl zeichne das alles schneller wird. Ich weiss, das ist eher für 3D Anwendungen gedacht, aber man kann ja auch 2D im 3D zeichnen sozusagen. :p Die Idee war, dass sich Java nicht mehr soviel mit dem Zeichnen beschäftigt, wei da die meisten Resourcen verloren gehen.
 

Marco13

Top Contributor
Ich kann mir immernoch nicht vorstellen, wo und wie man SO viele Components zeichnen können will, dass es unterträglich langsam wird - d.h. vorstellen kann ich mir das schon, aber keinen Zusammenhang, in dem das "sinnvoll" wäre. Kannst du einen Screenshot posten? :D
 

sibianu

Mitglied
Das ist ein Printscreen. Ich habe in meinem Program 3 andere Programme offen, manche davon beinhalten sehr viele Komponenten. Man könnte aber beliebeig viele Programme öffnen.
Mein Problem zur Zeit ist nur, wenn ich das Menü an der Seite auf und zuklappe bewegen sich die Programme mit (das ist erstmal so gewollt). Klar, man könnte das Menü auf dem Hauptpanel machen und nicht nebendran, das ist aber erstmal nicht gewollt, sondern man soll die laufenden Programme nicht mit dem Menü überdecken.
PS: Den Menü oben bitte erstmal nicht kritisieren, das sind nur ein paar Tests wie man grössere Buttons machen kann und mit Vector-Icons bestückt. ;)
 

Anhänge

  • printscreen.jpg
    printscreen.jpg
    91,2 KB · Aufrufe: 48

Kr0e

Gesperrter Benutzer
Hi, also um das mal klar zustellen! Du willst das nur benutzen um es zu beschleunigen ?

Dann versuch dein Glück mit -Dsun.java2d.opengl=True (True mit Debug in der konsole, true für simples Aktivieren)
Dieser Befehl muss unter VM Options eingetragen werden. Du sagst damit Java, dass es opengl zum rendern nehmen soll.
Damit ist das um einiges fixer.

Ich kann mir schon vorstellen, dass das langsam wird. Du benutzt ja offentsichtlich JDesktopPane. Wenn dort viele Fenster mit komplerxen componenten gemalt werden müssen, kann das ziemlich in den Keller gehen.

Gruß,
Chris
 

sibianu

Mitglied
Das habe ich leider schon probiert, es sind manchmal ein paar Verbesserungen zu sehen, aber auch nicht immer. Manchmal sieht man auch überhaupt keinen Unterschied. Auch wenn man das Glück hat und es scheint etwas schneller zu laufen, bei 2-3 grössere Programme geht das auch in die Knie und es fängt an richtig zu flackern.
 

Kr0e

Gesperrter Benutzer
Hmm, also mir is das auch schonmal aufgefallen dass das unter umständen etwas löangsam werden kann...
Aber nie so, dass ichs nicht gebrauchen konnte oder so. Du machst doc hhoffentlich keine Berechnungen innerhalb der Swing Eventqueue oder ?
 

sibianu

Mitglied
Nein, im Gegenteil, wir haben viele Sachen von der AWT-Eventqueue ausgelagert um die zu befreien. Allerdings haben wir an manche Stellen Berechnungen in den Paintroutinen, das lässt sich aber nicht vermeiden für manche Sachen.
 

sibianu

Mitglied
Würde es vielleicht sin machen sowas wie einen PrintScreen vom HauptPanel zu machen und nur den bei der Verschiebung anzeige? Im Hintergrund könnte ich alle Komponenten von A nach B in einem Schritt verschiebe, ohne Animation.
 

sibianu

Mitglied
Also das ersetzen lief ohne Probleme, allerdings habe ich dadurch ein anderes Problem:
wenn mein Menü aufgeklappt ist, dann hat mein Hauptfenster eine Breite x. Wenn ich jetzt ein Image von dem Hauptfenster mache und das Hauptfenster damit ersetze fehlt mir beim zuklappen ein Stück, und zwar genau die Breite des Menüs.
Ich habe versucht ein Viereck im Hintergrund zu malen, der größer ist als das Bild, das funktioniert auch gar nicht so schlecht, da ich aber auf im Hautfenster mittlerweile verschiedene Verläufe und Schattierungen habe bekomme ich das auf dem fehlenden Stück nicht 100%ig hin. Ich habe den Verlauf ganz gut hinbekommen, aber die Schattierung ist etwas komplizierter, auch weil ich die Paint-Routine übermalt habe.
Ein andere Idee war das Bild zu strecken bis ich das wieder mit dem Originalfenster austausche, das würde aber heissen, dass ich die Programme, die sich dadrauf befinden, auch mitstrecke, und das würde etwas bescheuert aussehen. :)
Hat jemand vielleicht eine andere Idee wie ich das fehlende Teil eleganter ausstopfe?

Gruß,
Sibianu
 

Anhänge

  • printscreen1.jpg
    printscreen1.jpg
    30,1 KB · Aufrufe: 36
  • printscreen2.jpg
    printscreen2.jpg
    25,6 KB · Aufrufe: 31
  • printscreen3.jpg
    printscreen3.jpg
    23,5 KB · Aufrufe: 31
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Swing Update Swing Komponente bevor Methode startet. AWT, Swing, JavaFX & SWT 4
M Swing JMenu verdeckt durch Komponente (aber kein AWT und Swing mix!?) AWT, Swing, JavaFX & SWT 3
K Swing Komponente als Bild speichern AWT, Swing, JavaFX & SWT 11
A Swing Komponente für Swing und JSF durch MVC AWT, Swing, JavaFX & SWT 5
B (Swing) Welche Komponente für unterteilten Text? AWT, Swing, JavaFX & SWT 4
slawaweis Suche TagCloud Komponente für Swing AWT, Swing, JavaFX & SWT 10
D swt komponente in swing-frame AWT, Swing, JavaFX & SWT 4
G Coverflow -artige Komponente für Swing? AWT, Swing, JavaFX & SWT 2
F eigene Swing-Komponente. Drehregler AWT, Swing, JavaFX & SWT 4
G Palette Komponente für Swing? AWT, Swing, JavaFX & SWT 8
Kidao Das Hintergrundbild überdeckt die Swing-Komponente AWT, Swing, JavaFX & SWT 5
T Eigen Swing Komponente AWT, Swing, JavaFX & SWT 9
K Swing-Komponente casten und übergeben AWT, Swing, JavaFX & SWT 4
T JLayeredPane Problem - AWT und SWING Komponente AWT, Swing, JavaFX & SWT 6
clemson Komponente in Swing als aktiv setzen AWT, Swing, JavaFX & SWT 5
A Swing: Wann ist eine Komponente gezeichnet? AWT, Swing, JavaFX & SWT 2
W Zeichnen auf eine Swing-Komponente AWT, Swing, JavaFX & SWT 5
Juelin javax.swing in javafx AWT, Swing, JavaFX & SWT 1
A Eclipse 2023 und Swing AWT, Swing, JavaFX & SWT 4
W 2 JTables in einem Swing-Fenster? AWT, Swing, JavaFX & SWT 5
H Swing Componente zur Läufzeit ändern AWT, Swing, JavaFX & SWT 3
B Actionlistener mit Java Swing AWT, Swing, JavaFX & SWT 2
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
H Swing Buttons erst nach Klick sichtbar AWT, Swing, JavaFX & SWT 13
ExceptionOfExpectation Anpassung von JKomponentengrößen (Swing) AWT, Swing, JavaFX & SWT 3
thor_norsk AWT SWING Aufgabe AWT, Swing, JavaFX & SWT 7
U Zwei Fragen zu eienr Swing Aufgabe AWT, Swing, JavaFX & SWT 2
M Swing Bilder in Swing anzeigen AWT, Swing, JavaFX & SWT 9
H Swing , GridLayout, Größenbestimmung der Komponenten im Layout AWT, Swing, JavaFX & SWT 8
H Simple Animation mit Swing AWT, Swing, JavaFX & SWT 2
Guybrush Threepwood Einfachste Möglichkeit zum Abspielen eines Videos in Swing AWT, Swing, JavaFX & SWT 4
A Swing ProgressBar über 2 parallel laufende Threads AWT, Swing, JavaFX & SWT 2
M Swing GridLayout AWT, Swing, JavaFX & SWT 2
O return-Statement mit Swing AWT, Swing, JavaFX & SWT 6
O Ein Java-Programm mit Swing steuern AWT, Swing, JavaFX & SWT 1
Monokuma Swing zu JavaFX AWT, Swing, JavaFX & SWT 5
J Swing Slider AWT, Swing, JavaFX & SWT 11
G Thread starten Swing AWT, Swing, JavaFX & SWT 5
G Swing JPasswordField AWT, Swing, JavaFX & SWT 12
L Swing Button Farbe ändern/wechseln AWT, Swing, JavaFX & SWT 2
C Swing AWT GUI Anfänger Aufgabe AWT, Swing, JavaFX & SWT 7
W Inject bei einem Swing Frontend AWT, Swing, JavaFX & SWT 8
L Kommunikation zwischen Klassen / Konstruktoren bei Swing AWT, Swing, JavaFX & SWT 9
M Feldvalidierung swing AWT, Swing, JavaFX & SWT 4
E Swing Componenten werden nach Änderung des display modes verzerrt dargestellt AWT, Swing, JavaFX & SWT 8
D [Swing] Anordnung von Komponenten mit GridLayout Manager AWT, Swing, JavaFX & SWT 13
O Zukunft von Swing und JavaFX ? AWT, Swing, JavaFX & SWT 3
S Swing Fenster State Machine AWT, Swing, JavaFX & SWT 1
T Swing Swing an Bildschirm anpassen AWT, Swing, JavaFX & SWT 3
S Swing Panel wird nicht neu gezeichnet AWT, Swing, JavaFX & SWT 3
M Swing Java Swing/AWT Combobox Bug AWT, Swing, JavaFX & SWT 3
M Swing GUI mittels erben sowie variabler Dateninhalt AWT, Swing, JavaFX & SWT 1
W Swing Multitouch mit Swing AWT, Swing, JavaFX & SWT 6
S Swing-Applikation die ein Numpad nachbildet samt Keybindings..? AWT, Swing, JavaFX & SWT 5
S Swing Java Swing AWT, Swing, JavaFX & SWT 6
Blender3D Problem mit € Symbol Font Gotham Windows 10 Swing AWT, Swing, JavaFX & SWT 11
J Swing oder JavaFX AWT, Swing, JavaFX & SWT 21
D Swing Anwendung ohne JPanel erstellen AWT, Swing, JavaFX & SWT 1
D SQL Statements mit Java Swing benutzen AWT, Swing, JavaFX & SWT 4
Damtonix BufferStrategy flackert (Swing) AWT, Swing, JavaFX & SWT 9
D DatePicker für Java Swing AWT, Swing, JavaFX & SWT 2
B JavaFX oder swing AWT, Swing, JavaFX & SWT 3
T Java Swing - kleines Rechteck unter dem cursor AWT, Swing, JavaFX & SWT 5
L 2D-Grafik Swing paint|paintComponent AWT, Swing, JavaFX & SWT 2
L Swing Größe automatisch anpassen AWT, Swing, JavaFX & SWT 14
G Swing Swing Binding JList funktioniert nicht AWT, Swing, JavaFX & SWT 5
Blender3D Meine Swing Anwendung läuft unter Windows 10 und Ubuntu aber nicht auf Windows 7 AWT, Swing, JavaFX & SWT 16
B Bar Plot in Swing JPanel AWT, Swing, JavaFX & SWT 0
D Swing in Kombination mit JGraphX und JGraphT AWT, Swing, JavaFX & SWT 0
F main-Funktion bei Swing AWT, Swing, JavaFX & SWT 4
S Java Swing Print() method AWT, Swing, JavaFX & SWT 4
S Java Swing auf Windows Phone AWT, Swing, JavaFX & SWT 6
I JAVAFX - Übergabe der Inhalte an eine Scene - Wo ist der Vorteil gegenüber Swing? AWT, Swing, JavaFX & SWT 2
S Manuelles Menu in Swing AWT, Swing, JavaFX & SWT 3
T Custom Window ohne Swing / AWT / FX..?! AWT, Swing, JavaFX & SWT 1
MaxG. Swing Swing Komponenten zur Laufzeit hinzufügen AWT, Swing, JavaFX & SWT 2
Java_RY Bin Ratlos bzgl Malen in Swing AWT, Swing, JavaFX & SWT 5
offi Swing Shuttle List AWT, Swing, JavaFX & SWT 9
I Graph mit Swing zeichnen AWT, Swing, JavaFX & SWT 8
D Swing Swing Objekte sehen im Entwurf anders aus als beim Ausführen AWT, Swing, JavaFX & SWT 3
S Swing & Clean und build Problem AWT, Swing, JavaFX & SWT 12
javampir Swing repaint in JavaFX Anwendung AWT, Swing, JavaFX & SWT 3
K Mit JavaFX angefangen. Lohnt sich Swing? AWT, Swing, JavaFX & SWT 28
B Swing Tabelle(JTable) filtern swing GUI AWT, Swing, JavaFX & SWT 3
M Swing Swing-Widgets und paintComponent() AWT, Swing, JavaFX & SWT 2
B Swing WindowBuilde: Menu -> anderes Panel wechseln AWT, Swing, JavaFX & SWT 1
K eigener button in swing AWT, Swing, JavaFX & SWT 3
A JavaFX DatePicker in Swing beim Start nicht sichtbar AWT, Swing, JavaFX & SWT 2
windl Bufferstrategy in Swing nachstellen AWT, Swing, JavaFX & SWT 0
M Kamera in Java Swing einbinden AWT, Swing, JavaFX & SWT 4
Z Swing Swing und die Progressbar AWT, Swing, JavaFX & SWT 1
J Frage zur objektorentierten Swing Programmierung AWT, Swing, JavaFX & SWT 10
Xanny 2D-Grafik Beginner! Probleme mit Swing, Gprahics class und paint AWT, Swing, JavaFX & SWT 13
F Java Swing Rechteck in JPanel zeichnen AWT, Swing, JavaFX & SWT 7
N Swing Benötige Hilfe um ein Swing Canvas zu speichern AWT, Swing, JavaFX & SWT 4
stylegangsta JButton Fehelr javax.swing.ImageIcon.<init>(Unknown Source) AWT, Swing, JavaFX & SWT 24
RalleYTN Swing JavaFX VideoPlayer in Swing einbetten. Ich komm nicht an die Dimension des Videos! AWT, Swing, JavaFX & SWT 0
T swing läuft nur beding flüssig AWT, Swing, JavaFX & SWT 1
A Sonderzeichen bei Swing AWT, Swing, JavaFX & SWT 3
L DoubleBuffering unter Swing AWT, Swing, JavaFX & SWT 0

Ähnliche Java Themen

Neue Themen


Oben