Abstand ZUM BorderLayout

Status
Nicht offen für weitere Antworten.

DeeDee0815

Bekanntes Mitglied
Hallo,

ich hoffe der Titel ist aussagekräftig genug :roll: .

Ich habe ein JDialog-Fenster mit BorderLayout. Dies enhält ein JTabbedPane und einen Schließen-Button. An sich alles kein Problem, allerdings würde ich gerne einen Abstand vom Fentsterinhalt zum Rand definieren. Ich habe auch noch in keinem Programm gesehen, dass dort ein TabbedPane direkt am Fensterrand andockte. Links und Rechts sowie unten soll auch ein entsprechener Abstand sein.

Mit

Code:
public BorderLayout(int hgap, int vgap)

komme ich nicht weiter, weil ich ja so nur den Abstand zwischen den Elementen, in diesem Fall zwischen JTabbedPane und Button festlegen kann. Auch das Layout in ein Null-Layout mit entsprechener Abstandposition zu stecken ist nicht so toll, da ich feststellen musste, das die Fenstergröße den Fensterrahmen einschließt. De Facto kann ich den Abstand rechts und unten nicht genau bestimmen.

Ich hoffe, ich habe mich klar genug ausgedrückt.

MfG
DeeDee0815
 
G

Guest

Gast
Hi,

also bei einem CompoundBorder gerät der Abstand ins minus, also das nützt nichts. Und bei dem Emptyborder kriege ich eine Fehlermeldung. Wie gibt man denn Überhaupt die Border-größe bei einem Emptyborder an?

Ich habe bisher folgendes gemacht:
Code:
tabbedpane.setBorder(new EmptyBorder(null));

Statt null Zahlen anzugeben geht nicht.

MfG
DeeDee0815

Code:
import java.awt.BorderLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.AbstractAction;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;

class Settings
extends JDialog
implements ActionListener
{
	private static final long serialVersionUID = 1L;
	
	private JTextField saving2;
	private JTextField saving4;
	private JTextField saving6;
	private JPasswordField saving8;
	
	public Settings()
	{
		final JDialog SettingsFrame = new JDialog(this, "Einstellungen", true);
		SettingsFrame.pack();
		SettingsFrame.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("Settings.png")));
		SettingsFrame.setSize(420, 320);
		SettingsFrame.setResizable(false);
		SettingsFrame.setLocationRelativeTo(null);
		
		JTabbedPane tabbedpane = new JTabbedPane();
		
		JPanel general = new JPanel();
		general.setLayout(null);
		JCheckBox general0 = new JCheckBox("Letzte Sitzung beim starten automatisch laden");
		JCheckB...

[...]

		...e.addTab("Speichern", saving);
		
		JPanel features = new JPanel();
		features.setLayout(null);
		tabbedpane.addTab("Spezialfunktionen", features);
		
		tabbedpane.setBorder(new EmptyBorder(null));
		
		SettingsFrame.add(tabbedpane, BorderLayout.CENTER); // <- siehe HIER!
		
		JButton close = new JButton(new AbstractAction("Schließen") {
			private static final long serialVersionUID = 1L;
			public void actionPerformed(ActionEvent event)
			{
				SettingsFrame.setVisible(false);
				SettingsFrame.dispose();
			}
		});
		SettingsFrame.add(close, BorderLayout.SOUTH);
		
		SettingsFrame.setVisible(true);
	}
	
	public void actionPerformed(ActionEvent event) {
		String command = event.getActionCommand();
		if(command == "In MRF-Dateien speichern") {
			saving2.setEnabled(false);
			saving4.setEnabled(false);
			saving6.setEnabled(false);
			saving8.setEnabled(false);			
		} else if(command == "In MySQL-Datenbank speichern") {
			saving2.setEnabled(true);
			saving4.setEnabled(true);
			saving6.setEnabled(true);
			saving8.setEnabled(true);
		}
	}
}

Code:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at javax.swing.border.EmptyBorder.<init>(EmptyBorder.java:54)
	at Settings.<init>(Settings.java:126)
	at MainMenu$18.actionPerformed(MainMenu.java:204)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
	at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1170)
	at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1211)
	at java.awt.Component.processMouseEvent(Component.java:6038)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
	at java.awt.Component.processEvent(Component.java:5803)
	at java.awt.Container.processEvent(Container.java:2058)
	at java.awt.Component.dispatchEventImpl(Component.java:4410)
	at java.awt.Container.dispatchEventImpl(Container.java:2116)
	at java.awt.Component.dispatchEvent(Component.java:4240)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
	at java.awt.Container.dispatchEventImpl(Container.java:2102)
	at java.awt.Window.dispatchEventImpl(Window.java:2429)
	at java.awt.Component.dispatchEvent(Component.java:4240)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
 

DeeDee0815

Bekanntes Mitglied
Leider entsteht bei dieser Variante ein hässlicher Dartstellungsfehler. Gibt es eine Möglichkeit, dem entgegenzuwirken?

darstellungsfehler.png


MfG
DeeDee0815
 

André Uhres

Top Contributor
DeeDee0815 hat gesagt.:
Leider entsteht bei dieser Variante ein hässlicher Dartstellungsfehler..
Bei mir Gott sei Dank nicht :D
Und ohne setBorder ist es schön?
Du kannst auch den Tabbedpane in ein Panel mit BorderLayout tun und
den setBorder dann auf dem JPanel machen, statt auf dem Tabbedpane :wink:
 

DeeDee0815

Bekanntes Mitglied
Das ist eine gute Idee.

Wenn ich das aber mache, sieht das alles etwas komisch aus:

darstellungsfehler2.png


Was ist denn hier falsch?!

Code:
import java.awt.BorderLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.AbstractAction;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;

class Settings
extends JDialog
implements ActionListener
{
	private static final long serialVersionUID = 1L;
	
	private JTextField saving2;
	private JTextField saving4;
	private JTextField saving6;
	private JPasswordField saving8;
	
	public Settings()
	{
		final JDialog SettingsFrame = new JDialog(this, "Einstellungen", true);
		SettingsFrame.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("Settings.png")));
		SettingsFrame.setSize(440, 340);
		SettingsFrame.setResizable(false);
		SettingsFrame.setLocationRelativeTo(null);
		
		JPanel panel = new JPanel();
		
		JTabbedPane tabbedpane = new JTabbedPane();
		
// blablabla Panels für das JTabbedPane

		//tabbedpane.setBorder(BorderFactory.createEmptyBorder(10, 10, 5, 10));
		
		panel.add(tabbedpane, BorderLayout.CENTER);
		
		JButton close = new JButton(new AbstractAction("Schließen") {
			private static final long serialVersionUID = 1L;
			public void actionPerformed(ActionEvent event)
			{
				SettingsFrame.setVisible(false);
				SettingsFrame.dispose();
			}
		});
		panel.add(close, BorderLayout.SOUTH);
		
		SettingsFrame.add(panel, BorderLayout.CENTER);
		SettingsFrame.setVisible(true);
	}
	
	public void actionPerformed(ActionEvent event) {
		String command = event.getActionCommand();
		if(command == "In MRF-Dateien speichern") {
			saving2.setEnabled(false);
			saving4.setEnabled(false);
			saving6.setEnabled(false);
			saving8.setEnabled(false);			
		} else if(command == "In MySQL-Datenbank speichern") {
			saving2.setEnabled(true);
			saving4.setEnabled(true);
			saving6.setEnabled(true);
			saving8.setEnabled(true);
		}
	}
}


MfG
DeeDee0815
 

André Uhres

Top Contributor
Code:
       JPanel panel = new JPanel(new BorderLayout());
        panel.setBorder(BorderFactory.createEmptyBorder(10, 10, 5, 10));
 

DeeDee0815

Bekanntes Mitglied
Achso: Ich dachte man könnte wie bei den JFrames das Layout indirekt mit add() angeben. Also Vielen Dank, jetzt läufts so, wie ich es will: Es ist übrigens auch kein Zufall, dass ich den Button und das TabbedPane in das Panel gesteckt habe. Nicht das Du an einen Verständnisfehler meinerseids glaubst. :cool:

Also Vielen Dank!

darstellungsfehler_behoben.png


MfG
DeeDee0815 :D
 

André Uhres

Top Contributor
DeeDee0815 hat gesagt.:
Achso: Ich dachte man könnte wie bei den JFrames das Layout indirekt mit add() angeben..
Im add gibt man nicht das Layout an, sondern die Constraints. Weil JFrame als Default den BorderLayout hat,
kann man auch die Constraints vom BorderLayout verwenden. JPanel hat aber als Default den FlowLayout.
Deshalb muss man ihm explizit den BorderLayout setzen, um ihn auch dort verwenden zu können :wink:
 
J

Java-User

Gast
Vielen Dank für diesen Befehl BorderFactory.createEmptyBorder...
danach habe ich gesucht :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
E LayoutManager GridBagLayout in BorderLayout - Abstand bei Resizing AWT, Swing, JavaFX & SWT 2
M JavaFX Abstand zwischen AnchorPane und Labels in dem HBox halten AWT, Swing, JavaFX & SWT 1
Z Swing Kann man denn abstand zwischen zwei Buttons berechnen AWT, Swing, JavaFX & SWT 5
H JavaFX Abstand rechts zur scrollbar AWT, Swing, JavaFX & SWT 1
D JGridLayout zwischen Zeilen bestimmter Abstand AWT, Swing, JavaFX & SWT 3
J Abstand im JLable AWT, Swing, JavaFX & SWT 2
S JMenuBar Frame Abstand AWT, Swing, JavaFX & SWT 3
J Swing Unteren Abstand für JTable in JScrollPane festlegen AWT, Swing, JavaFX & SWT 10
P Swing JLabel Schriftzeichen Abstand Leerzeichen AWT, Swing, JavaFX & SWT 4
D JTabel: Überschrift, Abstand zwischen Tabellen, Spalten-Farbe ändern AWT, Swing, JavaFX & SWT 2
D Tabellen Header & Abstand der Zeilen AWT, Swing, JavaFX & SWT 8
M gridbaglayout - abstand bei label und field AWT, Swing, JavaFX & SWT 8
B JLabel Abstand wegkriegen AWT, Swing, JavaFX & SWT 2
0 Swing LineBorder mit Abstand? AWT, Swing, JavaFX & SWT 2
C Swing JBorderLayout - Abstand AWT, Swing, JavaFX & SWT 7
P JButton - innerer Abstand veränderbar? AWT, Swing, JavaFX & SWT 6
steff2808 JLabel mit grossem Abstand von einem cm? AWT, Swing, JavaFX & SWT 5
hdi BoxLayout mit Abstand? AWT, Swing, JavaFX & SWT 5
A JButton Abstand Text - Rand AWT, Swing, JavaFX & SWT 4
D RadioButton abstand entfernen AWT, Swing, JavaFX & SWT 2
S Abstand zwischen Labeln auf 0 setzen AWT, Swing, JavaFX & SWT 6
N Abstand des Textes vom Rahmen bei JLabel AWT, Swing, JavaFX & SWT 2
G LayoutManager und Abstand AWT, Swing, JavaFX & SWT 6
O Buttons gleich groß + gleicher Abstand AWT, Swing, JavaFX & SWT 3
I JLabel Text Abstand AWT, Swing, JavaFX & SWT 9
C Abstand von Buttons zu Jpanel AWT, Swing, JavaFX & SWT 5
loadbrain 3 JLabels untereinander ohne Abstand AWT, Swing, JavaFX & SWT 4
G Abstand zwischen den Buttons in einer Toolbar AWT, Swing, JavaFX & SWT 3
B Abstand zwischen einzelnen Elementen einstellen AWT, Swing, JavaFX & SWT 2
N JTable Abstand zwischen einzelnen Spalten AWT, Swing, JavaFX & SWT 6
S Applet mit AWT: Abstand zum Rand ändern AWT, Swing, JavaFX & SWT 5
G Abstand einfügen! AWT, Swing, JavaFX & SWT 5
G abstand zwischen den buttons unterschiedlich AWT, Swing, JavaFX & SWT 2
Z komponenten "einfrieren" - abstand zwischen AWT, Swing, JavaFX & SWT 10
G Ungewollter Abstand zwischen Gui -Elementen / Insets setzen AWT, Swing, JavaFX & SWT 2
G BoxLayout: Abstand zwischen vertikalen Komponenten! 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
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
E AWT Formatierung in BorderLayout AWT, Swing, JavaFX & SWT 10
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
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

Ähnliche Java Themen

Neue Themen


Oben