Fullscreen GUI - MediaCenter

chrisx86

Grünschnabel
Hallo,

ich habe vor ein GUI zu schreiben der in Vollbild arbeitet.
Darstellen soll er eine art Media Center zum abspielen von Filmen, Musik etc.
Nun brauch ich ja eigene Components, da ich das ganze im Media Center Look erstellen will.
(für die jenigen die nicht wissen wie das ausschauen soll.. google -> mediaportal oder mediacenter)

Implementier bzw erweiter ich vorhandene Components und überschreibe die View
(Wenn ja, wie passe ich diese für komplett eigenes Erscheinungsbild an?)
oder ist es einfacher eigene Components zu schreibe?

Ich brauche im Prinzip nur das Menü (Schaltflächen) und zur inhaltdarstellung eine scrollbare Liste.
(Wie würdet ihr das aufbauen, was brauch ich für Klassen?)

Vielen Dank schonmal,
gruß Chris
 
Du leitest eigene Komponenten von vorhandenen ab - je nachdem, was Du brauchst, z.B. von JButton, JList etc... dort überschreibst Du nur die paintComponent Methode, um deine eigenen Steuerelemente im neuen Stil zu zeichnen. So kannst Du das komplette Verhalten, die Events etc... von den vorhandenen Swing Komponenten übernehmen.

Ich denke das hier ist ein sehr guter Ansatzpunkt für Dich:
http://java.sun.com/docs/books/tutorial/uiswing/painting/index.html
 
die Frage ist wie überschreibe ich die paintComponent richtig,
ich muss doch wissen in welchem Bereich ich überhaupt zeichnen darf (X,Y,BREITE,HÖHE).


public class CellRenderer extends JPanel implements ListCellRenderer {

public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {

return this;
}

@Override
protected void paintComponent(Graphics g) {

Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.black);
g2d.fillRect(getX(), getY(), getWidth(), getHeight());
}

}​

zeichnet er mir sowas. (siehe Anhang)
 

Anhänge

  • test.JPG
    test.JPG
    4,8 KB · Aufrufe: 84
Moin!
Da hast du dir aber was ganz schönes vorgenommen.
Was du möchtest ist eigentlich ein eigenes Look and Feel.
Kurz dazu: Jede Komponente hat einen eigenen UI-Manager, beispielsweise der Button hat eine ButtonUI, der für das Aussehen des Buttons verantwortlich ist.
Deine Aufgabe wäre es nun, für jede Komponente eine eigene UI zu schreiben.
Ich kann dir gleich sagen, das ist nicht wenig Arbeit...

Statt ein komplettes Look- and Feel zu schrieben, kannst du natürlich auch nur die wenigen UI Klassen schreiben, die du benötigst und den jeweiligen Komponenten dann explizit diese UI zuweisen. Die UIs musst du jan nicht von Grund auf neu schreiben, sondern kannst die vorhandenen deinen Wünschen anpassen...
Das wäre ein bisschen weniger Arbeit..

Es gibt ein nettes Buch von Sun zum Thema Look and Feel Design. Das solltest du dir vielleicht mal angucken:
http://java.sun.com/products/jlf/ed2/book/index.html

Allerdings gibts im Netz auch ne Menge Seiten, die Look-and Feels anbieten.
Beispielsweise hier:http://www.javootoo.com/index.html
Einfach mal Google bemühen. Vielleicht findest du ja etwas, was dir gefällt?!




*grüssle*
MeinerEiner
 
Zuletzt bearbeitet von einem Moderator:
die Frage ist wie überschreibe ich die paintComponent richtig,
ich muss doch wissen in welchem Bereich ich überhaupt zeichnen darf (X,Y,BREITE,HÖHE).

...
zeichnet er mir sowas. (siehe Anhang)


Der Zeichenbereich ist lokal von der Komponente, das heißt die linke obere Ecke ist 0, 0, die rechte untere ist getWidth(), getHeight(). Warum jetzt der Fehler auftritt weiß ich nicht, aber versuchs doch statt mit einem CellRenderer erstmal mit einem normalen JButton. Wenn Du in der paintComponent Methode dann ein Rechteck zeichnest, welches von 0,0 bis getWidth(), getHeight() geht, dann ist der Button komplett ausgefüllt, relativ einfach also.

Der Tipp mit dem eigenen Look and Fell bzw. dem UIManager ist natürlich völlig richtig, aber für den Anfang würde ich das nicht machen. Gerade wenn Du nur einige wenige neue Steuerelemente benötigst, taste Dich erstmal so heran.
 
Zurück