# AWT - Grafikkarten Nutzung?



## Guest (3. Feb 2009)

Hallo alle zusammen,

ich wollte mal wissen ob die AWT-Klasse ohne auf das sie auf die Grafikkarte zugreift läuft.
Ich soll ein Programm schreiben bei dem die Bedingung ist:_ "Grafikverarbeitung ohne Grafischeoberfläche"_, das heißt das Programm soll auf einen Server laufen der keine Grafikkarte hat.
Würde mich über hilfreiche antwort freuen...

Liebe Grüße,
Polli.


----------



## L-ectron-X (3. Feb 2009)

Ich weiß es nicht, aber was hindert dich daran, ein kleines Testprogramm mit AWT-Komponenten zu schreiben?
BTW: AWT ist veraltet, man arbeitet jetzt mit Swing.


----------



## Polli (3. Feb 2009)

mhh... was mich daran hindert... nicht viel, ausser das ich recherchieren sollte 
Ansonsten hab ich noch die Frage ob sich jemand zufällig mit PJA (Pure Java AWT) auskennt.

Danke ersteinmal.


----------



## slawaweis (3. Feb 2009)

Anonymous hat gesagt.:
			
		

> ich wollte mal wissen ob die AWT-Klasse ohne auf das sie auf die Grafikkarte zugreift läuft.
> Ich soll ein Programm schreiben bei dem die Bedingung ist:_ "Grafikverarbeitung ohne Grafischeoberfläche"_, das heißt das Programm soll auf einen Server laufen der keine Grafikkarte hat.
> Würde mich über hilfreiche antwort freuen...


AWT greift nicht auf die Grafikkarte zu, sondern nur auf die darunterliegenden OS-Funktionen. Doch deine Aufgabe bezieht sich nicht auf die Grafikkarte oder AWT, sondern deine Programme müssen auf einem System ausgeführt werden, welches keine grafische Benutzeroberfläche installiert oder aktiviert hat. Du musst also mit Java2D arbeitet. Als Erweiterung kannst Dir JAI, JMF, Batik und Java3D ansehen, die sind unter anderem auch für Grafikverarbeitung in reinem Softwaremodus gedacht. Das "PJA Toolkit" ist in diesem Fall unnötig, da es AWT-Funktionen nachbildet, wenn diese von der OS-Seite nicht zu Verfügung gestellt werden.

Slawa


----------



## Polli (4. Feb 2009)

slawaweis hat gesagt.:
			
		

> AWT greift nicht auf die Grafikkarte zu, sondern nur auf die darunterliegenden OS-Funktionen. Doch deine Aufgabe bezieht sich nicht auf die Grafikkarte oder AWT, sondern deine Programme müssen auf einem System ausgeführt werden, welches keine grafische Benutzeroberfläche installiert oder aktiviert hat. Du musst also mit Java2D arbeitet. Als Erweiterung kannst Dir JAI, JMF, Batik und Java3D ansehen, die sind unter anderem auch für Grafikverarbeitung in reinem Softwaremodus gedacht. Das "PJA Toolkit" ist in diesem Fall unnötig, da es AWT-Funktionen nachbildet, wenn diese von der OS-Seite nicht zu Verfügung gestellt werden.
> 
> Slawa



Hallo Slawa,

ersteinmal Danke für deine Antwort, die hat mir schon ein bisschen weitergeholfen .
Eine Bedinung war aber auch, dass das Programm auf einem Server läuft der ohne Grafikkarte ausgestattet ist. 
Sind dann die Erweiterungen JAI, JMF, Batik und Java3D immernoch sinnvoll?
Ist PJA gar nicht nutzbar?
Mit dem Programm sollen Grafiken erstellt werden (z.B. Torten-, Säulen- und Liniendiagramm), das Programm soll Plattformunabhängig sein und auch auf Servern ausführbar sein, die keine Grafikkarte haben. Die Grafiken sollen als JPG gespeichert werden und später evtl. ausgeführt werden. 
Mein Chef hat mir gesagt, dass die standart Java-Bibliotheken auf die Grafikkarte zugreifen, stimmt das? 
Oder kann ich die evtl. doch nutzen?


Liebe Grüße,
Polli.


----------



## pmias (4. Feb 2009)

Hallo,

wenn es nur darum geht, quasi in einem Offscreen irgend etwas zu zeichnen, was hindert Dich daran, einfach intern dynamisch ein BufferedImage zu generieren und darin dann zu zeichen? So aus der Hüfte könnte eine Erzeugerklasse z. B. so aussehen:


```
...
public static BufferedImage getTorte(int w, int h, Object data)
   {
   BufferedImage im = new BuffferedImage(w, h, BufferedImage.TYPE_INT_RGB);

   Graphics2D g2 = (Graphics2D) im.getGraphics();

   // ab hier wie bei einer Paint-Methode drauf losmalen, abhängig von den Objektdaten
   g2.fill(...);
   ...
   }
...
```

Grüße


----------



## slawaweis (4. Feb 2009)

Polli hat gesagt.:
			
		

> Mein Chef hat mir gesagt, dass die standart Java-Bibliotheken auf die Grafikkarte zugreifen, stimmt das?
> Oder kann ich die evtl. doch nutzen?


dein Chef hat recht, aber alles der Reihe nach. Fast jede Grafikbibliothek kann die Grafikoperationen im RAM berechnen, ohne irgendeiner Grafikkarte. Das nennt man _Softwaremodus_. Da bei sehr aufwendigen oder Echtzeitberechnungen der Softwaremodus zu langsam ist, greifen viele Bibliotheken auf die Grafikkarte zu, falls eine vorhanden und kompatibel ist, um die Berechnungen zu beschleunigen. Das nennt man _Hardwaremodus_. So gesehen benutzen viele Grafikbibliotheken eine Grafikkarte, falls sie eine finden. Aber auch ohne geht es bei den meisten. Übrigens haben die meisten Server eine Grafikkarte, aber nur die wenigsten eine grafische Benutzerschnittstelle.



			
				Polli hat gesagt.:
			
		

> Eine Bedinung war aber auch, dass das Programm auf einem Server läuft der ohne Grafikkarte ausgestattet ist.
> Sind dann die Erweiterungen JAI, JMF, Batik und Java3D immernoch sinnvoll?
> Ist PJA gar nicht nutzbar?


ob die Erweiterungen sinnvoll sind, muss Du entscheiden. Ich habe nur darauf hingewiesen, dass es Grafikverarbeitungsbibliotheken sind, die auch im Softwaremodus laufen. PJA ist auch nutzbar, nur bringt es nichts, weil man das AWT nicht braucht. AWT ist dazu da die Fenster auf dem Bildschirm für den menschlichen User zu programmieren. In einer Server/Client Architektur sitzt aber keiner direkt am Servermonitor. Da ist es eher sinnvoller Benutzerschnittstellen über den Webbrowser zu machen, also mit XHTML. Alternativ kann man es zwar auch mit Applets und AWT versuchen, aber das empfehle ich ausdrücklich nicht.



			
				Polli hat gesagt.:
			
		

> Mit dem Programm sollen Grafiken erstellt werden (z.B. Torten-, Säulen- und Liniendiagramm), das Programm soll Plattformunabhängig sein und auch auf Servern ausführbar sein, die keine Grafikkarte haben. Die Grafiken sollen als JPG gespeichert werden und später evtl. ausgeführt werden.


dafür empfehle ich Dir das JFreeChart Framework anzusehen. Das ist im Grunde das, was Du suchst:

http://de.wikipedia.org/wiki/JFreeChart

Alternativ kannst Du auch mit SVG und XSLT arbeiten, dann bräuchte man nicht mal Java 

Slawa


----------

