# In JOGL Java einbauen



## Sonic (11. Apr 2008)

Hallo 

Ich hätte gerne eine Swing-Element in einer JOGL-Anwendung. Geht das? Wie würdet ihr den einen JButton einbinden und vor allem verwenden? Das ganze kann in der Matrix oder fest vorne am Fenster angebracht sein, so wie ein Menü. 

Danke im Voraus  


Beispielcode: (einfaches Fenster ohne Inhalt)

```
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLCanvas;
import javax.media.opengl.GLEventListener;
import javax.swing.JFrame;

public class _01_Einfaches_Fenster{

	static class Zeichenfläche extends GLCanvas implements GLEventListener {
		
		public Zeichenfläche() {
			super();
		}

		@Override 
		public void display(GLAutoDrawable arg0) {	
		}
		
		@Override		// nicht implementiert
		public void displayChanged(GLAutoDrawable arg0, boolean arg1, boolean arg2) {
		}

		@Override		// nicht initialisieren
		public void init(GLAutoDrawable arg0) {
		}
		
		@Override 		// keine Fenstereigenschaften
		public void reshape(GLAutoDrawable arg0, int arg1, int arg2, int arg3, int arg4) {
		}
	}

	public static void main(String[] args) {
		Zeichenfläche canva = new Zeichenfläche();
		
		JFrame 		  fenster = new JFrame("Ein leeres Fenster");
					     fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			   		  fenster.add(canva);
			   		  fenster.setSize(640, 480);
			   		  fenster.setVisible(true);
	}
}
```


----------



## Evil-Devil (11. Apr 2008)

Gar nicht. Du könntest höchstens deine SWING Anwendung so aufteilen das zum einen deine OGL Zeichenfläche hättest und rings herum oder wo auch immer deine Buttons. Um direkt in OGL Schaltflächen zu erzeugen, musst du schon mit Texturen und den Möglichkeiten von OGL arbeiten.


----------



## Sonic (11. Apr 2008)

Danke


----------



## Sonic (11. Apr 2008)

Ich möchte noch etwas ergänzen.

Es ist ja Möglich auf einem JFrame ein JComponent welches das Canvas mit JOGL enthält anzuzeigen, darauf lassen sich ganz normal die Swing/SWT/AWT.. Elemente hinzufügen weil das Canvas im Hintergrund des JFrames ist! Somit hat man dies vollbracht


----------



## Marco13 (12. Apr 2008)

@Sonic: Der GLCanvas ist AFAIK ein "echter", heavyweight canvas. D.h. der versuch, dort mit einem Null-Layout und setBounds eine JComponent _drüber_ zu legen, dürfte scheitern (und selbst wenn es funktioniert, kann man sich nicht 100% darauf verlassen, dass das auf allen Systemen/Grafikkarten funktionieren wird). Man könnte ein GLJPanel verwenden - damit geht es _theoretisch_, weil das lightweight sein soll. Aber das kann dann andere Probleme verursachen. Und das was Evil-Devil vorschlagen hat klingt schon verdammt nach Swogl http://www.java-forum.org/de/viewtopic.php?t=59563  aber das ist auch irgendwie steckengeblieben   da müßte ich mal wieder ein bißchen Zeit reinstecken, um's zumindest ansatzweise anwendbar zu machen....


----------



## Illuvatar (12. Apr 2008)

Du könntest dir evtl. auch mal FengGUI anschauen.


----------

