AWT Formatierung in BorderLayout

Status
Nicht offen für weitere Antworten.

eddy

Aktives Mitglied
Hallo, ich möchte gern das der Butten der ja im Center steht zu beiden Seiten den gleichen Abstand hat *mittig halt*.
Außerdem möchte ich das die Label Bearbeitete Person, name und geb_dat untereinander stehen und p2 mittig von East ist.

Kann mir einer einen Tip geben :)

Hoffe ich habe mich nicht zu blöd ausgedrückt. ???:L

6srjlz.gif


Hier der Code
Java:
package _eigene.frame;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;

import Kapitel31.Layout.WindowCloseAdapter;

public class Hauptfenster extends Frame{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public Hauptfenster() {
		super("MainFrame");
		addWindowListener(new WindowCloseAdapter(true));
		
		setSize(800,600);
		setLayout(new BorderLayout(3,3));

		Panel p1 = new Panel(new FlowLayout());
		p1.add(new Label("TEXT CENTER"));
		int schriftGroesse = 32;
		p1.setFont(new Font("Arial", Font.ITALIC, schriftGroesse));
		
		Panel p2 = new Panel(new GridLayout(3,1));
		Label l1 = new Label("Bearbeitete Person");
		l1.setFont(new Font("Arial", Font.BOLD, 14));
		p2.add(l1);
		p2.add(new Label("Maier"));
		p2.add(new Label("01.01.2000"));
		
		add("North", p1);
		add("South", new Label(""));
		add("West", new Label(""));
		add("East", p2);
		add("Center", new Button("Image"));
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Hauptfenster hf = new Hauptfenster();
		hf.setVisible(true);

	}

}
 

KrokoDiehl

Top Contributor
[JAVA=40]
add("North", p1);
add("South", new Label(""));
add("West", new Label(""));
add("East", p2);
add("Center", new Button("Image"));
[/code]
Ach das geht? Man lernt ja nie aus, ich mach nämlich immer
Java:
add(myComponent, BorderLayout.NORTH);
;)
Aber zum Thema. Die erste Frage mit dem Abstand verstehe ich nicht... von wo nach wo?
Hilft da vielleicht der BorderLayout-Konstruktor
Code:
BorderLayout(int hGap, int vGap)
?

Die zweite Frage ist mir auch etwas unklar, du möchtest, dass die drei Labels (in EAST) nicht so weit verteilt werden sondern untereinander hängen, vertikal zentriert im EAST-Bereich?

Spontan würde ich vorschlagen:
[JAVA=33]
Panel p2 = new Panel();
p2.setLayout(new BoxLayout(p2, BoxLayout.Y_AXIS));
//...
p2.add(Box.createVerticalGlue());
p2.add(l1);
p2.add(new Label("Maier"));
p2.add(new Label("01.01.2000"));
p2.add(Box.createVerticalGlue());
//...
add("East", p2);
[/code]
Aber da gibt es sicher noch andere Möglichkeiten. Das GridLayout sorgt halt dafür, dass alle Zellen im Gitter (Grid) gleich groß sind.
 

eddy

Aktives Mitglied
ist nicht das was ich wollte.

Hab das mal mit Photoshop bemalt :oops: hoffe man erkennt es jetzt besser was ich will

snj4vb.gif
 

KrokoDiehl

Top Contributor
Ah ok.
Um deinen Riesenbutton in die Mitte zu bekommen, musst du im WEST-Bereich etwas hinlegen, was genauso breit ist wie dein EAST-Bereich, z.B. mit
Java:
add( Box.createRigidArea(new Dimension(w, 1)), BorderLayout.WEST );
 // w ist die breite vom EAST-Panel, also zB p2.getPreferredSize().width

Alternativ kannst du es auch gleich mit einem anderen Layout versuchen, zB GridBagLayout.
Aber hat mein Tipp für EAST zumindest geklappt? ;)
 

eddy

Aktives Mitglied
@KrokoDiehl
das geht bei dir? bei mir gibt er immer 0 zurück und damit ändert sich nixx!

hast du noch etwas verändert?
 

KrokoDiehl

Top Contributor
Sagen wir "Jain" :)

Der folgender Code geht bei mir und ich denke es sieht (erstmal) so aus, wie du es gern hättest. Das Resize-Verhalten (suche dafür noch ein deutsches Wort ;) ) ist auch ok in dem Sinne, als dass sich nur der Button vergrößert.
Java:
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;

import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;

public class Test
{
	public static void main(String[] args)
	{
		JButton button = new JButton("Image");
			button.setPreferredSize(new Dimension(150, 150));
		
		JLabel lblNorth = new JLabel("Oben");
			lblNorth.setHorizontalAlignment(SwingConstants.CENTER);
		JLabel lblSouth = new JLabel("Unten");
			lblSouth.setHorizontalAlignment(SwingConstants.CENTER);
		
		JPanel east = new JPanel();
			east.setLayout(new BoxLayout(east, BoxLayout.Y_AXIS));
			east.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 10));
			east.add(Box.createVerticalGlue());
			east.add(new JLabel("Eins"));
			east.add(new JLabel("zwei"));
			east.add(new JLabel("drei"));
			east.add(Box.createVerticalGlue());

		int 	  width = east.getPreferredSize().width;
		Component west  = Box.createRigidArea(new Dimension(width, 1));
		
		final JFrame f = new JFrame("Test");
			f.add(lblNorth, BorderLayout.NORTH);
			f.add(lblSouth, BorderLayout.SOUTH);
			f.add(button, 	BorderLayout.CENTER);
			f.add(east, 	BorderLayout.EAST);
			f.add(west, 	BorderLayout.WEST );
			f.pack();
			f.setLocationRelativeTo(null);
			f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	
		SwingUtilities.invokeLater(new Runnable()
		{
			@Override
			public void run()
			{
				f.setVisible(true);
			}
		}); //invokeLater
	} //main
} //class
 

KrokoDiehl

Top Contributor
Aaah... moment, da sehe ich Hirsch ja jetzt erst, dass du AWT und nicht Swing benutzt.
Hat das einen Grund? Weil ich fürchte, dass ich dir da kann iweniger helfen kann, denn mit AWT habe ich nie wirklich etwas gemacht.
Tut mir Leid falls all die Mühe (deinerseits) nun umsonst war, nur weil ich's nicht geblickt habe!
 

eddy

Aktives Mitglied
ja kein Problem, ick will ja was wissen!

Warum sollte ich Swing nehmen und nicht AWT?
Is doch dann alles etwas kleiner und vom Handling her besser oder? ???:L
 

KrokoDiehl

Top Contributor
Ich bin kein Java-Historiker, aber meines Wissens nach ist AWT der Vorgänger von Swing und somit das eher veraltete Paket. Swing baut auf AWT auf (wie man an vielen Stellen erkennt) und erweitert es an vielen Stellen.
Im Quellcode erkennt man den Unterschied am "J": Swing-Komponenten beginnen damit (JFrame vs. Frame).
AWT und Swing sollte man aber nicht mischen, spricht kein Button in einen JDialog legen usw..
IMHO spricht nichts dafür AWT zu nehmen, es sei denn man muss kompatibel zu älteren Projekten/Quellcode bleiben.
Da Swing auch im Standard-Java enthalten ist, muss man sich auch keine Sorgen um zusätzliche Bibliotheken etc. machen.

Ob AWT "kleiner" und besser vom "Handling" ist vermag ich nicht unterschreiben. Mag sein das AWT "kleiner" ist in dem Sinne, dass es weniger Speicher braucht, aber das ist mal ins Blaue geraten. Da beides im JDK ist, ist es vom Plattenbedarf her nicht kleiner ;)
Vom Handling her müsste aber Swing besser sein, weil es, wie gesagt, AWT erweitert und auch mehr LayoutManager, Listener etc. bereitstellt.

Aber wie gesagt, es gibt hier Leute im Forum die dazu weitaus mehr sagen können :)
 
Zuletzt bearbeitet:

eddy

Aktives Mitglied
@ KrokoDiehl

ich habe es jetzt mal geändert auf JFrame etc. und es funktioniert.
Allerdings mag ich das Bunte ja mal gar nicht... wie kann ich das ändern?
 
Zuletzt bearbeitet:

KrokoDiehl

Top Contributor
Welches bunte? Möchtest du vielleicht das Standard-Look&Feel vom Betriebssystem? Dann musst du in der main-Methode (am besten gleich zu Beginn) folgendes einfügen:

Java:
try
{
    UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() );
}
catch (Exception exc)
{
    exc.printStacktrace();
    // ...oder was du sonst mit Ausnahmen anstellen willst
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G JavaFX Bind StringProperty zu IntegerProperty mit Formatierung AWT, Swing, JavaFX & SWT 2
H setToolTipText ignoriert HTML-Formatierung des anzuzeigenden Strings AWT, Swing, JavaFX & SWT 4
S jLabel HTML Formatierung AWT, Swing, JavaFX & SWT 2
TheJavaKid JTextPane: komplexe Formatierung (links) AWT, Swing, JavaFX & SWT 2
X Swing JTextPane bei Größenänderung Formatierung behalten AWT, Swing, JavaFX & SWT 11
O Girdbag Formatierung nach repaint verloren AWT, Swing, JavaFX & SWT 2
A TableRowSorter für double Werte mit Formatierung AWT, Swing, JavaFX & SWT 3
G JTable formatierung AWT, Swing, JavaFX & SWT 5
André B. formatierung in TextArea AWT, Swing, JavaFX & SWT 7
J Formel-ähnliche Formatierung von Text AWT, Swing, JavaFX & SWT 3
G Einfache Text formatierung? Wie? AWT, Swing, JavaFX & SWT 4
K JavaFX Resizing-Problem beim BorderLayout (Center Component) beim Arbeiten mit mehreren FXMLs AWT, Swing, JavaFX & SWT 2
L BorderLayout in BorderLayout verknüpfen AWT, Swing, JavaFX & SWT 2
M Bewegtes Bild im BorderLayout.CENTER AWT, Swing, JavaFX & SWT 6
F BorderLayout Hilfe bei Anzeige AWT, Swing, JavaFX & SWT 2
B AWT Panel größe im BorderLayout einstellen AWT, Swing, JavaFX & SWT 1
C Swing Borderlayout im JFrame AWT, Swing, JavaFX & SWT 4
C Swing Geschachteltes GUI mit BorderLayout - Vertikal & horizontal Verschieben AWT, Swing, JavaFX & SWT 1
P AWT BorderLayout AWT, Swing, JavaFX & SWT 2
A BorderLayout "Center" Inhalt wechseln AWT, Swing, JavaFX & SWT 1
S Swing [CLOSED] NullPointerException bei BorderLayout() AWT, Swing, JavaFX & SWT 8
S JScrollPane und BorderLayout AWT, Swing, JavaFX & SWT 1
B Swing Borderlayout East über North AWT, Swing, JavaFX & SWT 5
Q JFrame/BorderLayout AWT, Swing, JavaFX & SWT 3
A LayoutManager Höhe von NORTH beim BorderLayout ändern AWT, Swing, JavaFX & SWT 4
bluerob Panel im BorderLayout South wird nicht angezeigt AWT, Swing, JavaFX & SWT 5
M BorderLayout JPanel liegt nicht richtig an AWT, Swing, JavaFX & SWT 12
R BorderLayout AWT, Swing, JavaFX & SWT 4
C LayoutManager BorderLayout im richtigen Format beschriften AWT, Swing, JavaFX & SWT 10
C CardLayout in BorderLayout? AWT, Swing, JavaFX & SWT 36
S Problem mit BorderLayout NORTH und SOUTH AWT, Swing, JavaFX & SWT 2
T Borderlayout Ecken AWT, Swing, JavaFX & SWT 2
H Swing JInternalFrame, JDesktopPane und ein BorderLayout AWT, Swing, JavaFX & SWT 2
R Problem mit Box bzw BorderLayout AWT, Swing, JavaFX & SWT 6
G LayoutManager BorderLayout WEST Bereich auf maximale Größe beschränken AWT, Swing, JavaFX & SWT 19
P LayoutManager BorderLayout - Zweimal Norden ? AWT, Swing, JavaFX & SWT 4
E LayoutManager GridBagLayout in BorderLayout - Abstand bei Resizing AWT, Swing, JavaFX & SWT 2
R BorderLayout: EAST, CENTER, WEST AWT, Swing, JavaFX & SWT 5
2 AWT Borderlayout: Grafikelemente ein und ausblenden AWT, Swing, JavaFX & SWT 2
J LayoutManager BorderLayout - 2 Buttons in SOUTH nebeneinander platzieren? AWT, Swing, JavaFX & SWT 3
N JPanel vertikal im BorderLayout zentrieren AWT, Swing, JavaFX & SWT 2
S Anordnen von Buttons im BorderLayout AWT, Swing, JavaFX & SWT 6
F Im BorderLayout eine feste Grösse zuweisen! AWT, Swing, JavaFX & SWT 9
S JSplitpane in BorderLayout nutzen AWT, Swing, JavaFX & SWT 4
K LayoutManager Borderlayout - NORTH aktualisieren AWT, Swing, JavaFX & SWT 10
B Swing BorderLayout und JPanel AWT, Swing, JavaFX & SWT 3
A GUI Komponenten in Borderlayout zeichnen AWT, Swing, JavaFX & SWT 3
B BorderLayout AWT, Swing, JavaFX & SWT 8
S Swing BorderLayout + Backgroundcolor AWT, Swing, JavaFX & SWT 3
0din Austausch von JPanel in BorderLayout AWT, Swing, JavaFX & SWT 3
X Instanzieren und Zuweisen vom BorderLayout an Container nicht notwendig ? AWT, Swing, JavaFX & SWT 4
D Resizeverhalten BorderLayout AWT, Swing, JavaFX & SWT 3
calzone Swing und BorderLayout AWT, Swing, JavaFX & SWT 11
Strahlungsleck Problem mit dem Anzeigen von Elementen im BorderLayout AWT, Swing, JavaFX & SWT 6
R LayoutManager ähnlich BorderLayout, mit einer Ausnahme AWT, Swing, JavaFX & SWT 2
D BorderLayout.Center mit 3 Panel und dynamischer Größe AWT, Swing, JavaFX & SWT 2
P Probleme bei BorderLayout im JPanel AWT, Swing, JavaFX & SWT 7
G Komponente oben positionieren (BorderLayout) AWT, Swing, JavaFX & SWT 3
G BorderLayout - zentrieren AWT, Swing, JavaFX & SWT 1
S [BorderLayout]WEST/EAST sollen über ganze Höhe gehen; AWT, Swing, JavaFX & SWT 3
A BorderLayout Verhältnis festlegen? AWT, Swing, JavaFX & SWT 5
F Farbe für den Hintergrund eine BorderLayout-Teils AWT, Swing, JavaFX & SWT 5
O Probleme bei BorderLayout AWT, Swing, JavaFX & SWT 5
H Bei BorderLayout SOUTH minimieren AWT, Swing, JavaFX & SWT 3
DeeDee0815 Abstand ZUM BorderLayout AWT, Swing, JavaFX & SWT 13
K BorderLayout--> feste Größe AWT, Swing, JavaFX & SWT 2
D BorderLayout + Buttongröße ändern AWT, Swing, JavaFX & SWT 4
P JPanel im BorderLayout feste Größe/Position zuordnen AWT, Swing, JavaFX & SWT 3
L Alle Inhalte in BorderLayout.CENTER löschen? AWT, Swing, JavaFX & SWT 2
M Layout Problem (GrudBag- + BorderLayout) AWT, Swing, JavaFX & SWT 6
O GridBag IN BorderLayout? AWT, Swing, JavaFX & SWT 5
J BorderLayout / 1 Panel in Mitte und 1 Panel im Osten anordne AWT, Swing, JavaFX & SWT 6
F FlowLayout in BorderLayout AWT, Swing, JavaFX & SWT 4
D BorderLayout mit JTextField AWT, Swing, JavaFX & SWT 7
B BorderLayout.WEST (JTree strecken in Höhe) AWT, Swing, JavaFX & SWT 2
B BorderLayout/JSplitPane Problem beim Ausrichten AWT, Swing, JavaFX & SWT 5
F Anordnung im BorderLayout AWT, Swing, JavaFX & SWT 6
S Toolbar in einem BorderLayout verschieben AWT, Swing, JavaFX & SWT 4
M FlowLayout in BorderLayout einbinden? AWT, Swing, JavaFX & SWT 6
J Ermittlung der Ausrichtung einer Komponente im BorderLayout AWT, Swing, JavaFX & SWT 3
M AWT borderLayout AWT, Swing, JavaFX & SWT 7
R dummes BorderLayout :( AWT, Swing, JavaFX & SWT 8
H BorderLayout.setBackground AWT, Swing, JavaFX & SWT 2
J paint(Graphics g) im BorderLayout einem JPanel zuordnen &amp AWT, Swing, JavaFX & SWT 19
C Borderlayout und Checkboxgruppen AWT, Swing, JavaFX & SWT 3
frau-u Borderlayout - zusätzliche Zeile AWT, Swing, JavaFX & SWT 4
W Probleme mit BorderLayout AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben