# Eigene GUI (evt. Toolkit)



## Soldering Iron (29. Jan 2009)

Hi
ich habe vor eine Anwendung mit eigener GUI zu entwickeln.
Den Begriff eigene GUI verstehe ich in diesem Fall aber nich so streng.
Mir geht es eigentich nur darum, z.B. verschiedene Klassen zu schreiben, in denen ich die normalen Swing-Elemente modifiziere und z.B. eigene Grafiken, welche ich in Gimp o.ä. entworfen habe, einzubinden. Das Ergebnis sollte dann folgendes sein:

Die Anwendung sollte z.B. im Mac Style sein oder im Windows Vista Style.

Das Problem ist jetzt jedoch nicht die Idee sondern die Realisierung.
Ich weiß nicht, in wie fern ich das machen kann, und wie überhaupt.

Ich kann eigentlich schon gut oder besser gesagt gut mit Java umgehen und hab auch schon einiges gemacht.
Das Problem ist halt nur, wie und ob ich mit normaler Vererbung solche Steuerelemente "erstellen" kann.

Ich hoffe ihr versteht mein Problem und könnt mir helfen.
Falls ihr mehr wissen wollte, müsst ihr einfach nur fragen.
Ich freue mich auf eure Antworten und schonmal Danke im Vorraus.

Grüß
Kolben


----------



## Fu3L (29. Jan 2009)

Soldering Iron hat gesagt.:
			
		

> Ich kann eigentlich schon gut oder besser gesagt gut mit Java umgehen und hab auch schon einiges gemacht.
> Das Problem ist halt nur, wie und ob ich mit normaler Vererbung solche Steuerelemente "erstellen" kann.



Bis zu diesem Teil wars relativ klar, aber ab da, weiß ich nichmehr was du meinst. 
Also erstma: Hast du jemals eine GUI geschrieben (wenns auch nur ein einzelnes Fenster mit nix drin war) oder etwas darüber gelesen?

Und vor allem, was verstehst du unter Steuerelemente?


----------



## Soldering Iron (29. Jan 2009)

Also Standart GUIs habe ich schon geschrieben.

Das ist alles kein Problem.
Unter Steuerelementen verstehe ich Buttons.

Vll habe ich mich komisch ausgedrückt, aber ich will sozusagen meiner Swing-Oberfläche ein eigenes Designe verpassen.

Versteht ihr was ich meine?

MFG
Kolben


----------



## Fu3L (29. Jan 2009)

```
//Das Look and Feel ändern
		try {
		
			UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
		
		} catch(Exception ex) {
			
			//dann wird halt das ocean-L&F benutzt...
			
		}
```

Füg das mal am Anfang deines Codes ein, also bevor du irgendeine Componente definierst... Das ganze nennt sich Look&Feel. Da kannst du auch das plattformabhängige wählen, oder aber explizit: Windoof, Mac, Ocean, Nimbus...
Sowas selsbt zu schreiben is mächtigst viel Arbeit. Man kann aber das synth look and feel selbst gestalten (hab ich aber noch nich selbst gemacht).

PS: Das Codebeispiel funktioniert erst ab Java 6 Update 10, also kann sein, dass es nich tut, dann einfach mal nach Look and Feel hier im Forum oder bei Google suchen und ein anderes auswählen)


----------



## Soldering Iron (29. Jan 2009)

Hey.
Danke 
Was Look and Feel ist weiß ich.
Ich habe das mit Bedacht nicht so formuliert.
-was vielleicht im Endeffekt nicht die beste Endscheidung war.
Ich würde das gerne selber machen. Als kleine Aufgabe an mich 
Ich bin Schüler  ich habe noch Zeit und wenn ich so ne Sache machen will, dann langweile ich mich auch nicht.

Keiner ne Idee wie ich Look and Feel selbst machen kann?

MFG
Kolben


----------



## Fu3L (29. Jan 2009)

Soldering Iron hat gesagt.:
			
		

> Hey.
> Danke
> Was Look and Feel ist weiß ich.



Dann schreib doch gleich "Wie schreibe ich ein eigenes Look and Feel"  :wink: Wie das geht, würd mcih übrigends auch interessieren, auch wenn ich wohl kaum genug Kreativität dazu hätte...

Aber ich hab schonmal hier im Forum ne Suche nach Look and Feel gestartet und dabei dashier gefunden, vllt hilfts ja, wenn sonst keiner mehr was schreibt: http://www.java-forum.org/de/topic11089_eigenes-look-amp-feel-schreiben-tutorials.html

Mir würd schon reichen, zu wissen, wie man die Farbgebung eines swing-buttons ändern kann^^



> Ich bin Schüler    ich habe noch Zeit



Bin auch noch Schüler und hab Zeit, aber nach der Schule reicht meist die Motivation für sowas großes nichtmehr  :wink:


----------



## Soldering Iron (29. Jan 2009)

Naja mein Problem ist mehr, dass ich nie weiß, was ich machen soll. Ich habe ne ganze Menge an Sprachen ausprobiert.
Wa zwischendurch mal bei .net und bei C++.
C++ werde ich auch fortsetzen. Ruby war auch mal dabei (in der Liste, von den Sprachen, welche ich ausprobiert habe).
Aber jetzt bin ich wieder bei Java. Habe von ner Zeit nur und intensiv Java gemacht und werde in Zukunft nur noch Java und C++ machen.
Obwohl... D ist ein guter Spagat zwischen den beiden Sprachen   ich kanns nur empfehlen

So jetzt mal vielen Dank 

Ich hoffe das mit dem L&F wird klappen.
Ich melde mich dann, wenns Fragen gibt, oder ich net weiter komme.

Aber ich hoffe das noch was geschrieben wird 

MFG
Kolben


----------



## Guest (29. Jan 2009)

Du könntest auch jedes für dich relevante graphische Element vererben, dann hast du alle "Techniken" der Event - Steuerung und sinstige wichtige Sachen wie LayoutManager beibehalten.
Also im Klartext:

```
public class MeinGeilerButton extends JButton{

    public MeinGeilerButton(String Text){
        super(text);
        setBackGround("MeinGeilesBackgroundBild");
        //usw
    
    }

}

public class MeinGeilesFenster extends JFrame{
    //.......

}


//irgendwo im programm
new MeinGeilesFenster().add(new MeinGeilerButton("Coool"))
```

Kannste dir dann die Elemente bis zu einem gewissen Grad bestimmt deinen Vorstellungen anpassen, musst halt gucken, was die API an Methoden zur Veränderung von Components anbieter


----------



## Soldering Iron (29. Jan 2009)

Quasi war das ja auch mein Anliegen und meine erste Idee das so zu machen.
Aber ich hab keine genaue Vorstellung, wie ich dann später z.B. eine Menübar modifiziere, das sie so aussieht, wie in meinen "Träumen".



Bitte noch mehr Antworten.
Ich bin um alles froh.

MFG
Kolben


----------



## Gast (29. Jan 2009)

Ich weiss ja nicht wie das in deinen Träumen aussehen mag,
aber es lässt scih bestimm, auch beiJMenuBar, irgendwie ein BackGround Image dafür klarmachen.
Wie gesagt, Entdecke die wunderbare Welt der API, da sind ne Menge Methoden aufgeführt, und guck dir auch die Methoden an, die von den oberen Klassen geerbt worden sind.
Z.B sind alle Komponeneten von Component abgeleitet
und dort gibt es diese ominöse volatileImage, hab aber ehrlich gesagt keine Ahnung was das sein könnte, also probieren.
Ansonsten ist wahrscheinlich dieses Look n Feel Ding auch ne gute Möglichkeit


----------



## Gast2 (31. Jan 2009)

www.java-forum.org/de/viewtopic.php?t=11089&highlight=look+feel


----------

