Java Button - Größe

daniel_sun

Erfahrenes Mitglied
Hallo,

beschäftige mich zur Zeit mit GUI-Programmierung in Java:

Code:
import java.awt.*;

public class MainWindow extends Frame {
	
	
	Panel panel = new Panel(new GridLayout(1,1));
	Button btn1 = new Button("Get Site");
	
	public MainWindow(){
		
		super("GraphicProxy");
		this.setLayout( new BorderLayout(5,5) );
		panel.add( btn1);
		btn1.setSize( new Dimension(50,50) );
		this.add( panel );
		this.setSize( 500, 500 );
		this.addWindowListener( new MainWindowEvent() );
		this.setVisible( true );
	}
}

Ich schaffe es einfach nicht den Button auf dem Layout zu bewegen noch die größe zu ändern. Er geht immer über das gesamte Fenster.

Iwie verstehe ich diese Layouts noch nicht ganz. Ich weis was BorderLAyout ect ist aber verstehe nicht warum sich die Objekte nicht ausrichte lassen.

Gruß
Daniel_sun
 
Moin,

was meinst Du denn mit "bewegen" ?
Google mal einfach nach "AWT Layoutmanager", da kommen doch viele gute Links !

Gruß
Klaus
 
Huhu,

ich denke er meint dass er die Position des Buttons nicht verändern kann, was ja ohl daran liegt dass der im ganzen Applet ist.
Ich nutze NetBeans um meine Applets zu erstellen und dort kann ich das Layout einstelle. Bei dem standartmäßigen BorderLayout ziehen sich bei mir die Objekte auch über die größe des gesamten Applets, also vllt musst du das Layout löschen in dem du es null setzt.
Code:
setLayout(null);
Das wäre jetzt meine einzige Idee, die ich spontan habe. Vllt hilft sie ja sogar.

LG,
Mainz007
 
Guten Morgen,

Wenn du den Button absolut unabhängig auf deinem Fenster bewegen willst braucht du kein BorlderLayout sondern ein AbsolutLayout. Das bekommst du hin, indem du einfach setLayout(null) machst.

Jetzt kannst du die Position deines Buttons mit Button.setBounds(); bestimmen.
So ist beispielsweise der Syntax: btn1.setBounds(10,10,40,20);
Dabei entsprechen die Werte in .setBounds(); genau der Reihenfolge: x,y,Länge,Breite.

Ich hoffe ich konnte dir Helfen!
 
Danke für eure Hilfen. Hab das Layoutprinzip kompett falsch verstanden. Habe nicht gewussen das das sich das Layout (bis auf das NULL-Layout) immer auf die komplette Größe bezieht.

Wer mich mal auf die Suche nach einem guten Programm (Plugin) zum Layout erstellen. Nimmt mir glaube viel Zeit und Arbeit ab :)
 
Das Layout-Verhalten hat an sich nichts mit der gesamten Größe der Oberfläche zu tun (auch wenn das an sich so ist), sondern jeder LayoutManager hat seine eigene Verhaltensweise und somit Vor- und Nachteile. Diese musst du dir "reinziehen", anders wirst du keine sauberen GUIs implementieren können.

Und beim Thema GUI-Designer sag ich persönlich, lass die Finger davon. Das kommt dir jetzt am Anfang vielleicht leichter vor, weil man alles schön zusammenklicken kann. Du hast davon aber nichts. Setz dich direkt mit den Komponenten auseinander. Wenn du das nötige Wissen hast, kannst du auch gerne einen GUI-Designer verwenden. Aber ich verspreche dir, du wirst ihn dann ganz anders nutzen als jetzt.
 
Ein guter Gui Designer ist der Window Builder Pro, ist nen Plugin für Eclipse und stammt von Google, gehört jetzt allerdings Eclipse. Ist kostenlos und kann auf der Eclipse Seite runtergeladen werden :) aber kleiner Tipp, versuch am Anfang die Komponenten erst zu verstehen.
 
In Juno ist der auch sofort mit an Bord, aber ich persönlich empfehle das Lernen des Umgangs mit GUIs nicht durch solche Klickerspielchen. Ich habe das oft genug erlebt (weil man das von Delphi und VS so kennt), dass die Leute immer brav klicken. Aber wenn es dann an die Materie geht, dann sind viele total überfordert. Diese GUI-Designer sind alle nur dazu da, dass man sich nicht übertrieben lange mit der GUI beschäftigt, sondern mal eben hinfrikeln kann (wobei ich das nicht wirklich bestätigen kann, denn wir benutzen bei uns in der Firma das MigLayout und die GUIs sind meist schneller getippt als geklickt). Aber um dann damit arbeiten zu können, braucht man dennoch entsprechendes Wissen und wenn das fehlt, dann ist auch der beste GUI-Designer keinen Pfifferling wert.
 
Zurück