# Java Button mal nicht nur als rechteck



## alexf (3. Mrz 2008)

Hallo ich bin derzeit eine GUI (java.awt)am programmieren und will in diesem 4 Buttons einfügen, was ja auch alles ohne weiteres klappt aber ich würde gerne nicht fiereckige buttons haben sondern auch mal halbrunde oder dreieckige!!
Vieleicht kann mir ja jemand sagen wie ich dies realisieren kann.

Danke LG Alex


----------



## alexf (3. Mrz 2008)

alexf hat gesagt.:
			
		

> Hallo ich bin derzeit eine GUI (java.awt)am programmieren und will in diesem 4 Buttons einfügen, was ja auch alles ohne weiteres klappt aber ich würde gerne nicht fiereckige buttons haben sondern auch mal halbrunde oder dreieckige!!
> Vieleicht kann mir ja jemand sagen wie ich dies realisieren kann.
> 
> Danke LG Alex


----------



## 0x7F800000 (3. Mrz 2008)

du fügst das gewünschte Icon hinzu und lässt den hintergrund und den rahmen mit

```
setContentAreaFilled(false);
setBorderPainted(false);
```
einfach weg... habs nie probiert, dürft aber gehen... hoff ich mal^^  :bae:


----------



## alexf (4. Mrz 2008)

also ich weiss nicht! 
wie soll ich das Icon den hinzufügen??
und dann motzt der Compiler beim weg lassen des hintergrundes und rahmen ganz böse mit mir 
oh je ich verzweifel
also ich erzeuge zb ein Button und ein text Area	


		xButton = new Button("x");
		xButton.setBounds(280, 160, 100, 25);
		xButton.setFont(fntFett);
		xButton.addActionListener(this);//#####
		add(xButton);
		xButton.setForeground(blau);
		xButton.setBackground(Color.yellow);

		taInfo = new TextArea();
		taInfo.setBounds(20, 210, 360, 140);
		taInfo.setFont(fntAusgabe);
		add(taInfo);
		taInfo.setForeground(Color.black);
		taInfo.setBackground(Color.pink);
in der TextArea steht dann zb wie oft ich das bVersuch Button gedrückt habe

	                private void xButtonClicked()
	                {
		      taInfo.append("\"x\" geklickt\n");
	                }
nun soll das Button aber dreieckick sein und es bleibt bei mir aber immer viereckig
wenn ihr mir hier Helfen könnt dann )))!!!!!!!!!!!!!!!!!!!!!!!


----------



## Meru (4. Mrz 2008)

Laut diesem Beitrag ist das, was du vorhast nicht möglich

"Und darum können auch nur leichte Komponenten andere Formen als ein Rechteck haben"


----------



## 0x7F800000 (4. Mrz 2008)

äähm, warum zur hölle benutzt du nicht swing?  ???:L


----------



## Ellie (4. Mrz 2008)

Ich schließe mich Andrey an, benutze lieber Swing.


----------



## alexf (4. Mrz 2008)

Leider habe ich für wünsche entgegen genommen die beinhalten dies in awt zu machen ;( und leider liest man von Swing mal was gutes und mal was schlechtes  !! aber irgendwie muss es doch gehen !


----------



## The_S (4. Mrz 2008)

Im Vergleich zu AWT liest man von Swing NUR gutes!

In Swing wäre das kein Problem, dazu gibt es sogar ein extra Tutorial von sun. Aber AWT ... kA!


----------



## 0x7F800000 (4. Mrz 2008)

alexf hat gesagt.:
			
		

> Leider habe ich für wünsche entgegen genommen die beinhalten dies in awt zu machen ;( und leider liest man von Swing mal was gutes und mal was schlechtes  !! aber irgendwie muss es doch gehen !



option a)
Du sagst denjenigen, die das in AWT gewünscht haben, dass die kekse backen gehen sollen, und machst es mit swing  :toll: 

option b)
du schnappst dir die Klasse "Button", überlädst da die ganzen Funktionen die für die erkennung der mausklicks verantwortlich sind (etwa contains() ) und die ganzen Funktionen die fürs zeichnen verantwortlich sind ( paint() und sowas) und krigst irgendwann vielleicht ein dreieckiges Button hin. 
Wenn da aber alles privat deklariert ist, und sich nix großartig ableiten und überladen lässt musst du vom "Component" die gesamte Button-Klasse nachbauen  :autsch: 

Dann hast du im wahrsten sinne des Wortes ein dreieckiges Rad neuerfunden...


----------



## alexf (4. Mrz 2008)

ja wenn ich wüste wie so nen button geschrieben wird dann würde ich das tun 

ok ich werde mich mal an swing ran wagen  
mal schauen was es dort gibt!

dennoch werde ich es bei awt nicht aufgeben vieleicht schaffe ich es ja irgend wann mal


----------



## 0x7F800000 (4. Mrz 2008)

alexf hat gesagt.:
			
		

> dennoch werde ich es bei awt nicht aufgeben vieleicht schaffe ich es ja irgend wann mal


da hat wohl einer zuviel zeit...  :bae:


----------



## Wildcard (4. Mrz 2008)

alexf hat gesagt.:
			
		

> dennoch werde ich es bei awt nicht aufgeben vieleicht schaffe ich es ja irgend wann mal


Wenn Sun AWT schon seit Jahren aufgegeben hat und es nur noch als Unterbau für Swing betrachtet, dann schaffst du das auch  :wink:


----------



## alexf (4. Mrz 2008)

na viel zeit habe ich nicht wirklich aber aufgeben will ich einfach nicht auch wenn java halt awt so zu sagen aufgegeben hat ich halt nicht  :noe: aber ich werde wenn ich es schaffe euch alle daran teil haben lassen also last mich mal machen  :bae:


----------



## Reality (12. Mrz 2008)

alexf hat gesagt.:
			
		

> ja wenn ich wüste wie so nen button geschrieben wird dann würde ich das tun



Da Sun den kompletten Quellcode zur Verfügung stellt, kannst du ja nachschauen, wie sie das gemacht haben und ggf. modifizieren. Da Swing selbst komplett in Java geschrieben wurde, muss es irgendwie möglich sein, einen runden Button ohne Swing zu schreiben.
Würde aber keinen Sinn machen das Rad neu zu erfinden, da das erstens nicht wirtschaftlich ist, zweitens mit langen Entwicklungszeiten deine Kunden vergraulst (oder eben gefeuert wirst, wenn du fest eingestellt wirst).
Aber privat kannst du das ruhig machen.

An deiner Stelle würde ich das für deinen Kunden (?) zuerst in Swing realisieren und ggf. privat selbst nachforschen, wenn dich das interessiert.

Liebe Grüße
Reality


----------



## alexf (12. Mrz 2008)

Ja Danke für Deine tipps ich habe es in swing realisier aber ich finde die Lade zeiten von Swing sehr langsam zumindest beim ersten Start eines Swing Frames 
Daher werde ich in AWT weiter .......machen
Meinen Kunden habe ich schon glücklich gemacht bzw meinem Arbeitsgeber er hat sich dann für eckige Butten entschieden
aber für die Zukunft.......
wo findet man den die Quellcodes habe sie bei SUN noch nicht gefunden nur APi usw....


----------



## The_S (13. Mrz 2008)

im JDK liegt eine src.zip dabei. Die enthält den Quellcode.


----------

