# Ausrichtung eines Jbuttons



## tritko1 (7. Nov 2006)

Ich möchte gerne meine zwei Buttons ausrichten, 
das heißt, ich möchte Sie horizontal bzw. vertikal ausrichten und
auch die Größe verändern - habe auch schon einige Methoden
versucht, aber es klappt irgendwie nicht.

Habt Ihr eine Lösung?

Der Quellcode:

public Pframe ()
		  {
			      super("Einstellungen");
			      getContentPane().setLayout (new FlowLayout());
			      setSize(400,300);
				  setLocation(400,300);
	    	      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);



		  		  //Deklarationen
			      JButton blinie=new JButton("Linie");
			      JButton blager=new JButton ("Lager");


			      //button.setHorizontalAlignment();
			      //button.setVerticalTextPosition(435);
			      /*JPanel panel;

				 panel = new JPanel(new GridLayout(1,1));

				 // button.setLocation(3,5);

		          //Listener für Buttons
				  //addMouseListener(button);

				  panel.add(BorderLayout.WEST, button);*/
			      getContentPane().add(blager);
			      getContentPane().add(blinie);


				  setVisible(true);
		  }//end Konstruktor


----------



## Zunera (7. Nov 2006)

Hallo,

ich habe mich auch lange mit den Layouts der JAVA AWT herumgeschlagen und festgestellt, dass die beste Lösung für einige meiner Layoutprobleme darin besteht, einfach kein Layout zu setzen, also:

...
getContentPane().setLayout (null);
...

Dann kannst du deine Buttons sehr einfach mit

button.setBounds(x-pos, y-pos, width, height); //JAVA 1.5

platzieren und skalieren und da sind sie dann auch!

Grüße


----------



## Wildcard (7. Nov 2006)

Blödsinn. 
Wenn man nicht selbst zeichnet verwendet man immer einen Layoutmanger.
Zu deinem Proble: Dinge wie setSize, setLocation funktionieren nicht wenn du einen LayoutManger verwendest.
Das ist schließlich die Aufgabe des LayoutMangers. Man kann allerdings in den meisten Layouts einen Hint  für die Größe geben. Das macht man mit setPreferredSize.


----------



## Zunera (7. Nov 2006)

Wildcard hat gesagt.:
			
		

> Zu deinem Proble: Dinge wie setSize, setLocation funktionieren nicht wenn du einen LayoutManger verwendest.
> Das ist schließlich die Aufgabe des LayoutMangers.



Danke für die Bestätigung!  Es gibt nunmal individuelle Gestaltungen, die einem der LayoutManager, welchen auch immer man auswählt, nicht macht. Sicher nicht immer und von oder für jeden zu empfehlen (Null Layout is Evil), aber dennoch auch einsetzbar, genutzt und empfohlen, auch wenn man nicht selbst zeichnet (siehe Java Sun Tutorial).

Viele Grüße


----------



## tritko1 (7. Nov 2006)

Habe mich entschlossen, das BorderLayout zu nehmen, da ich mich bei dem GridbagLayout
nicht auskenne. So, noch ein Problem. Wenn ich den Code eingebe, dann bringt er mir beim BorderLayout ein leeres
Fenster. Beim FlowLayout bringt er mir die Buttons usw.

Was mache ich falsch?

Danke

Code:

public class Pframe extends JFrame
{
	//Deklaration
	JLabel abfrizb;
	JButton blager;
	JButton blinie;
	JButton breserve;
	JLabel abfranz;
	JTextField von;
	JTextField bis;


	public Pframe ()
		  {
			    super("Einstellungen");
			    Container c=getContentPane();
				c.setLayout (new BorderLayout());
				//setSize(500,300);
				//setLocation(250,200);
				//setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);



		  		//Wertezuweisung

		  		abfrizb=new JLabel("Welche Art von Inventurzählbelegen wollen Sie                                                             ausdrucken?");
		  		blinie=new JButton("Linie");
			    blager=new JButton ("Lager");
			    breserve=new JButton("Reserve");
			    abfranz=new JLabel("Wieviele IZB´s möchten Sie ausdrucken?");

			    von=new JTextField(3);
			    bis=new JTextField(3);

			      getContentPane().add(abfrizb, BorderLayout.CENTER);
				  c.add(blager,  BorderLayout.CENTER);
			      c.add(blinie,  BorderLayout.CENTER);
			      c.add(breserve, BorderLayout.CENTER);
				  c.add(abfranz, BorderLayout.CENTER);
			      c.add(von, BorderLayout.CENTER);
			      c.add(bis, BorderLayout.CENTER);


		  }//end Konstruktor



}//end class



*Main*

public static void main(String[] args) throws Exception {

		String data[] = new String[7];
		data[0] = "FL";
		data[1] = "22.04.2006";
		data[2] = "10001";
		data[3] = "ST";
		data[4] = "TypBehÃ¤lter";
		data[5] = "Warenkorb";
		data[6] = ".2546843";

		//DocumentPrintable t = new DocumentPrintable();
		//t.setdata(data);
		//t.printDocument();

		try 
		{
			Pframe frame=new Pframe();
			frame.setSize(250,200);
			frame.show();

			Print p = new Print();

			if (p.setPrinter()==true) //Beim Drücken des "Cancel" Buttons wird false zurückgegeben
			{
				p.print(data);
			}//endelse

		}//endtry 

		catch (PrinterException e) 
		{
			System.out.print("Fehler ist aufgetreten");
			e.printStackTrace();

		}//endcatch

		catch (Exception f)
		{
			System.out.println("Fehler ist aufgetreten");
		}


	}//endmain
}//endclass


----------



## Wildcard (7. Nov 2006)

Jeder der 5 Bereiche im BorderLayout nimmt nur eine Komponente auf.


----------



## tritko1 (8. Nov 2006)

Und wie muss ich das realisieren, das mir alles angezeigt wird?

Ich wüsste jetzt nicht, was du meinst....

Danke


----------

