JButtons mit GridBagLayout anordnen

Status
Nicht offen für weitere Antworten.
J

java_starter2008

Gast
hi,

ich sitze gerad vor einem Layoutproblem.

Code:
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;

import javax.swing.JButton;
import javax.swing.JFrame;

public class GUI extends JFrame{
Container con;
GridBagConstraints gbConst ;
final static int ANZHAL= 14 ;
int i=0;
JButton[] mulde_btns= new JButton[ANZHAL];

		GUI(String title) {
		super(title);
		con	= this.getContentPane();		
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		con.setLayout(new GridBagLayout());
		this.setSize(850, 400);
		this.setLocation(170, 100);
		gbConst	=	new GridBagConstraints();
		this.setVisible(true);
		

		//gbConst.insets = new Insets(50,0,0,0);  //Padding
		mulde_btns[0] = new JButton("Dummy1");		
		gbConst.fill = GridBagConstraints.HORIZONTAL;
		gbConst.weightx = 0;
		gbConst.weighty = 0;
		gbConst.gridx = 0;
		gbConst.gridy = 0;
		//gbConst.gridheight= 4;
		mulde_btns[0].setPreferredSize(new Dimension(100,200));
		con.add(mulde_btns[0],gbConst);
		
		mulde_btns[1] = new JButton("Button1");
		gbConst.fill = GridBagConstraints.HORIZONTAL;
		gbConst.weightx = 0;
		gbConst.weighty = 0;
		gbConst.gridx = 1;
		gbConst.gridy = 0;
		mulde_btns[1].setPreferredSize(new Dimension(100,100));
		con.add(mulde_btns[1],gbConst);
		
		mulde_btns[2] = new JButton("Button1");
		gbConst.fill = GridBagConstraints.HORIZONTAL;
		gbConst.weightx = 0;
		gbConst.weighty = 0;
		gbConst.gridx = 2;
		gbConst.gridy = 0;
		mulde_btns[2].setPreferredSize(new Dimension(100,100));
		con.add(mulde_btns[2],gbConst);		 
		
		mulde_btns[3] = new JButton("Button1");
		gbConst.fill = GridBagConstraints.HORIZONTAL;
		gbConst.weightx = 0;
		gbConst.weighty = 0;
		gbConst.gridx = 3;
		gbConst.gridy = 0;
		mulde_btns[3].setPreferredSize(new Dimension(100,100));
		con.add(mulde_btns[3],gbConst);
		
		mulde_btns[4] = new JButton("Button1");
		gbConst.fill = GridBagConstraints.HORIZONTAL;
		gbConst.weightx = 0;
		gbConst.weighty = 0;
		gbConst.gridx = 4;
		gbConst.gridy = 0;
		mulde_btns[4].setPreferredSize(new Dimension(100,100));
		con.add(mulde_btns[4],gbConst);
		
		mulde_btns[5] = new JButton("Button1");
		gbConst.fill = GridBagConstraints.HORIZONTAL;
		gbConst.weightx = 0;
		gbConst.weighty = 0;
		gbConst.gridx = 5;
		gbConst.gridy = 0;
		mulde_btns[5].setPreferredSize(new Dimension(100,100));
		con.add(mulde_btns[5],gbConst);
		
		mulde_btns[6] = new JButton("Button1");
		gbConst.fill = GridBagConstraints.HORIZONTAL;
		gbConst.weightx = 0;
		gbConst.weighty = 0;
		gbConst.gridx = 6;
		gbConst.gridy = 0;
		mulde_btns[6].setPreferredSize(new Dimension(100,100));
		con.add(mulde_btns[6],gbConst);		
				
		mulde_btns[7] = new JButton("Dummy");		
		gbConst.fill = GridBagConstraints.HORIZONTAL;
		gbConst.weightx = 0;
		gbConst.weighty = 0;
		gbConst.gridx = 7;
		gbConst.gridy = 0;
		//gbConst.gridheight= 4;
		mulde_btns[7].setPreferredSize(new Dimension(100,100));
		con.add(mulde_btns[7],gbConst);
		
		mulde_btns[8] = new JButton("Button1");
		gbConst.fill = GridBagConstraints.HORIZONTAL;
		gbConst.weightx = 0;
		gbConst.weighty = 0;
		gbConst.gridx = 1;
		gbConst.gridy = 1;
		mulde_btns[8].setPreferredSize(new Dimension(100,200));
		con.add(mulde_btns[8],gbConst);
		
		}
}

Mit dem Code möchte ich folgende JButtons-Anordnung erreichen.

Bild

wie schaffe ich das ? bitte um eure Hilfe

danke
 

Frank_H

Mitglied
ich hab mir einfach mal deinen Code geschnappt... könnt man alles noch schöner machen, aber nu is schlafenszeit ;-)

Code:
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;

import javax.swing.JButton;
import javax.swing.JFrame;

public class GUI extends JFrame {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	Container con;
	GridBagConstraints gbConst;
	final static int ANZHAL = 14;
	int i = 0;
	JButton[] mulde_btns = new JButton[ANZHAL];

	GUI(String title) {
		super(title);
		con = this.getContentPane();
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		con.setLayout(new GridBagLayout());
		this.setSize(850, 400);
		this.setLocation(170, 100);
		gbConst = new GridBagConstraints();
		this.setVisible(true);

		gbConst.insets = new Insets(2,2,2,2); //Padding
		mulde_btns[0] = new JButton("Dummy1");
		gbConst.anchor = GridBagConstraints.LINE_START;
		gbConst.fill = GridBagConstraints.BOTH;
		gbConst.weightx = 0.5;
		gbConst.weighty = 0.5;
		gbConst.gridx = 0;
		gbConst.gridy = 0;
		gbConst.gridheight = 2;
		con.add(mulde_btns[0], gbConst);

		mulde_btns[1] = new JButton("Button1");
		gbConst.gridx = 1;
		gbConst.gridy = 0;
		gbConst.gridheight = 1;
		con.add(mulde_btns[1], gbConst);

		mulde_btns[2] = new JButton("Button2");
		gbConst.gridx = 2;
		gbConst.gridy = 0;
		con.add(mulde_btns[2], gbConst);

		mulde_btns[3] = new JButton("Button3");
		gbConst.gridx = 3;
		gbConst.gridy = 0;
		con.add(mulde_btns[3], gbConst);

		mulde_btns[4] = new JButton("Button4");
		gbConst.gridx = 4;
		gbConst.gridy = 0;
		con.add(mulde_btns[4], gbConst);

		mulde_btns[5] = new JButton("Button5");
		gbConst.gridx = 5;
		gbConst.gridy = 0;
		gbConst.gridheight = 2;
		con.add(mulde_btns[5], gbConst);

		mulde_btns[6] = new JButton("Button6");
		gbConst.gridx = 1;
		gbConst.gridy = 1;
		gbConst.gridheight = 1;
		con.add(mulde_btns[6], gbConst);

		mulde_btns[7] = new JButton("Dummy");
		gbConst.gridx = 2;
		gbConst.gridy = 1;
		con.add(mulde_btns[7], gbConst);

		mulde_btns[8] = new JButton("Button7");
		gbConst.gridx = 3;
		gbConst.gridy = 1;
		con.add(mulde_btns[8], gbConst);

	}
}
 
J

java_starter2008

Gast
also nochmal

ich habe die Insets geändert da ich oben und unten bisschen Platz lassen wollte

Code:
gbConst.insets = new Insets(50,0,50,0); //Padding (int top, int left, int bottom, int right)

dann sieht es aber so kommisch aus. Zwischen den Buttons wird Platz gelassen. Wo kommt der Platz her ?

Wie mache ich weg ? :(





danke
 

HoaX

Top Contributor
du gibst doch bei den buttons, wie du selbst sagst, diese insets an, also werden die auch angezeigt ...
 
J

java_starter2008

Gast
Nein mit Insets sag ich doch dass er von oben und unten Platz lassen soll aber nicht in der MITTE ( wie du siehst).
 

Verjigorm

Top Contributor
java_starter2008 hat gesagt.:
Nein mit Insets sag ich doch dass er von oben und unten Platz lassen soll aber nicht in der MITTE ( wie du siehst).

Nö, Insets haben 4 Übergabeparameter:
Abstand zu: Oben, Links, Unten, Rechts (diese Reihenfolge)

An Insets object is a representation of the borders of a container. It specifies the space that a container must leave at each of its edges. The space can be a border, a blank space, or a title.

Insets(int top, int left, int bottom, int right)
Creates and initializes a new Insets object with the specified top, left, bottom, and right insets.
 

Verjigorm

Top Contributor
java_starter2008 hat gesagt.:
ok wie kriege ich jez den mittleren latz weg ?

bist wohl ziemlich lernresistent :p
Insets entspricht Platz, den die Komponente in alle 4 Zusatzrichtungen "verbraucht"
Dann sollte man den Wert für Links und Rechts jeweils auf 0 setzen.
Welche Parameter das sind, siehste ja in meinem letzten Posting


edit: wobei ich auf dem Bild nicht sehe, wo er zwischen den Buttons (links+rechts) Platz lässt
 

HoaX

Top Contributor
das dazwischen ist sowohl das unten der oberen reihe sowie das obere der unteren reihe ;)

weg bekommst du das indem du den buttons entsprechende insets verpasst. also der oberen reihe insets wo nur oben 50 abstand sind und für die untere reihe umgedreht
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
CptK Bild beim betätigen eines JButtons Java Basics - Anfänger-Themen 6
T NullLayout und JButtons Java Basics - Anfänger-Themen 4
F Interface JButtons werden nicht angezeigt... Java Basics - Anfänger-Themen 5
S Jbuttons an Koordinaten Java Basics - Anfänger-Themen 33
M JButtons verschieben Java Basics - Anfänger-Themen 13
J Problem bei Param.übergabe und dem erstellen von JButtons Java Basics - Anfänger-Themen 4
N JButtons vergleichen Java Basics - Anfänger-Themen 3
L Platz auf JButtons verändern Java Basics - Anfänger-Themen 18
D java jbuttons auf dem Hintergrundbild Java Basics - Anfänger-Themen 11
E JButtons auf JFrame nicht immer sichtbar Java Basics - Anfänger-Themen 4
Q Random Funktion JButtons Java Basics - Anfänger-Themen 6
X Probleme mit JButtons Java Basics - Anfänger-Themen 6
A JButtons dynamisch generieren mit verschiedenen actionhandlern Java Basics - Anfänger-Themen 6
D JTextField anstatt Jbuttons Java Basics - Anfänger-Themen 9
0 jButtons einen Int wert zuweisen MineSweaper Java Basics - Anfänger-Themen 3
P Wert eines JButtons Java Basics - Anfänger-Themen 6
R JButtons in eine Array legen GUI Java Basics - Anfänger-Themen 5
M JPanel, JButtons, Borderlayout Java Basics - Anfänger-Themen 8
M Dynamische JButtons mit ActionListener Java Basics - Anfänger-Themen 7
Z JButtons & Actionlistener Java Basics - Anfänger-Themen 5
W Variable anzahl an JButtons Java Basics - Anfänger-Themen 5
A Problem mit einem Array aus JButtons Java Basics - Anfänger-Themen 4
K unbestimmte Anzahl JButtons Java Basics - Anfänger-Themen 2
H JButtons anpassen Java Basics - Anfänger-Themen 3
G Text des JButtons? Java Basics - Anfänger-Themen 2
J Rand eines JButtons entfernen Java Basics - Anfänger-Themen 3
M umbennenen eines JButtons Java Basics - Anfänger-Themen 2
G JButtons mit Rand Java Basics - Anfänger-Themen 3
M JButtons werden nicht angezeigt Java Basics - Anfänger-Themen 13
B Größe von JButtons Java Basics - Anfänger-Themen 2
R Buttons können sich bewegen und JButtons nicht? Java Basics - Anfänger-Themen 5
V Problem mit JButtons und JTextField Java Basics - Anfänger-Themen 5
C ActionEvent bei JButtons Java Basics - Anfänger-Themen 2
M Erstellen eines insets Objekts, GridBagLayout Java Basics - Anfänger-Themen 13
AnnaBauer21 GridBagLayout JLabel weightx: Unterschiedliche Breite mit & ohne Text Java Basics - Anfänger-Themen 6
B Image laden im GridBagLayout Java Basics - Anfänger-Themen 3
A GridBagLayout Fehler Java Basics - Anfänger-Themen 7
S Gridbaglayout Problem Java Basics - Anfänger-Themen 2
B GridBagLayout in der oberen rechten Ecke starten statt mittig Java Basics - Anfänger-Themen 2
L Das erste Mal GridBagLayout - wie geht das? Java Basics - Anfänger-Themen 5
J Gridbaglayout Java Basics - Anfänger-Themen 2
S Swing, Gridbaglayout Panel in Panel;funzt nicht!! Java Basics - Anfänger-Themen 3
K GridBagLayout Java Basics - Anfänger-Themen 7
L Fenster winzig klein durch GridBagLayout Java Basics - Anfänger-Themen 3
R GridBagLayout funktioniert nicht Java Basics - Anfänger-Themen 3
Y add Funktion für GridBagLayout zeigt Button nicht an Java Basics - Anfänger-Themen 3
L Swing GridBagLayout Java Basics - Anfänger-Themen 3
M GridBagLayout-Problem Java Basics - Anfänger-Themen 13
S GridBagLayout neue Objekte hinzufügen Java Basics - Anfänger-Themen 3
N JPanel - Gridbaglayout Java Basics - Anfänger-Themen 11
T GridBagLayout Autoanpassung Java Basics - Anfänger-Themen 6
X GridBagLayout Komponenten Anordnungsproblem Java Basics - Anfänger-Themen 4
S JTable in GridBagLayout zwingen Java Basics - Anfänger-Themen 2
S GridBagLayout: Problemchen Java Basics - Anfänger-Themen 2
Antoras weightx bei GridBagLayout Java Basics - Anfänger-Themen 2
C GridBagLayout Java Basics - Anfänger-Themen 6
I Swing-Komponenten-Größe im GridBagLayout beschränken Java Basics - Anfänger-Themen 2
G GridBagLayout und JTable Java Basics - Anfänger-Themen 2
N GridBagLayout: gleichmäßige verteilung von Komponenten Java Basics - Anfänger-Themen 23
D GridbagLayout Java Basics - Anfänger-Themen 16
G GridBagLayout Java Basics - Anfänger-Themen 3
G GridBagLayout einstellen Java Basics - Anfänger-Themen 5
W GridBagLayout und JTable Java Basics - Anfänger-Themen 4
C GridBagLayout BIld an variabler Stelle einfügen Java Basics - Anfänger-Themen 2
K Gridbaglayout, wie geht das? Java Basics - Anfänger-Themen 2
D GridBagLayout Java Basics - Anfänger-Themen 2
G GridBagLayout -> Wie werden Elemente "zentriert&quot Java Basics - Anfänger-Themen 7
J Problem mit GridBagLayout und JPanel Java Basics - Anfänger-Themen 4
M Problem mit Aktualisierung von GridBagLayout Java Basics - Anfänger-Themen 2
D GridBagLayout Java Basics - Anfänger-Themen 4
T ungewollte zentrierte Ausrichtung im Gridbaglayout Java Basics - Anfänger-Themen 5
M Problem mit GridBagLayout Java Basics - Anfänger-Themen 3
R GridBagLayout und JTextField: Textfeld ist viel zu schmal Java Basics - Anfänger-Themen 4
C Size JTextField in GridBagLayout Java Basics - Anfänger-Themen 2
J image im gridbaglayout? Java Basics - Anfänger-Themen 2
H GridBagLayout Java Basics - Anfänger-Themen 2
C Button in GridBagLayout einstellen Java Basics - Anfänger-Themen 4
K GridBagLayout, JFrame und Scrollen Java Basics - Anfänger-Themen 4
G GridBagLayout Java Basics - Anfänger-Themen 5
ShapeShifter GridBagLayout Java Basics - Anfänger-Themen 7
M GridBagLayout und enthaltende komponenten Java Basics - Anfänger-Themen 5
G GridBagLayout wie? Grundgerüst leicht komplex. Java Basics - Anfänger-Themen 2
G Linie/Gitter in GridBagLayout Java Basics - Anfänger-Themen 4
G GridBagLayout: Verständnisproblem Java Basics - Anfänger-Themen 5
P GridBagLayout Java Basics - Anfänger-Themen 2
B SWAP List; Liste neu anordnen Java Basics - Anfänger-Themen 4
CptK Interface Kleine Kreise in großem Kreis anordnen Java Basics - Anfänger-Themen 3
M Panels untereinander anordnen Java Basics - Anfänger-Themen 3
A Erste Schritte Daten untereinander anordnen Java Basics - Anfänger-Themen 9
T JLabel richtig anordnen? wie gehts? Java Basics - Anfänger-Themen 9
P Anordnen der höchsten int in einem int[] Java Basics - Anfänger-Themen 16
M halt anordnen Java Basics - Anfänger-Themen 4
M BAPI GetList Liste anordnen Java Basics - Anfänger-Themen 3
T Ziffern anordnen Java Basics - Anfänger-Themen 3
T Textfelder und ComboBoxen anderst anordnen? Java Basics - Anfänger-Themen 4
G JLabel - Icon und Text untereinander anordnen? Java Basics - Anfänger-Themen 2
J Ausgabe mit BufferedWriter exakt untereinander anordnen Java Basics - Anfänger-Themen 10
J JLabel / JTextField linksbündig anordnen Java Basics - Anfänger-Themen 3
N In einer JToolbar das Icon ganz rechts anordnen Java Basics - Anfänger-Themen 5
G STRING IN DATEI NEU ANORDNEN Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben