LayoutManager Fehlerhafte Darstellung einer Statusleiste/Statusbar

StefanG

Aktives Mitglied
Hallo,

ich möchte für mein Programm eine Statusleiste erstellen, die ganz rechts einen Beenden Button hat und ganz links den Dateipfad der aktuell geöffneten Datei anzeigt.

Die Fenstergröße kann verändert werden und der Dateipfad kann selbsverständlich unterschiedlich lang sein.

Diese Statusbar wird per BorderLayout am unteren Ende des Frames angeheftet.

Mein Problem ist, dass ich der Statusbar eine feste Größe in der Höhe mitgeben möchte, jedoch soll die Breite des Rahmens sich natürlich an die Größe des Fensters anpassen.

Was mache ich falsch? Beim ausführen meines Codes ist in der Mitte der Beenden Button und der Dateipfad (String beim Aufruf der Anwendung noch leer) nicht in voller Fensterbreite.



Die Klasse "StatusBar" extends JPanel implements ActionListener.

Java:
	private void buildStatusBar() {

		this.setBackground(Color.lightGray);
		this.setLayout(new FlowLayout(FlowLayout.LEFT));
		this.setBorder(BorderFactory.createEtchedBorder());

		ImageIcon btnIconBeenden = new ImageIcon("icon/Stop.png");
		JButton btnBeenden = new JButton("Beenden");
		btnBeenden.setIcon(btnIconBeenden);
		btnBeenden.addActionListener(this);
		

		JLabel lblDateiName = new JLabel(strDateiName);

		this.add(lblDateiName);
                         this.add(btnBeenden);

	}
 
Zuletzt bearbeitet:
Hallo,

wenn ich deine Beschreibung richtig interpretiere, solltest du den FlowLayout-Manager deiner StatusBar durch einen BorderLayout-Manager ersetzten und den Button und das Label mit East bzw. West festlegen.

Ansonsten poste mal ein KSKB.

MfG
hansmueller
 
Habe jetzt für das Panel ein BorderLayout gewählt anstelle des FlowLayout. Jedoch ist dieses Panel immer noch zentriert und hat nicht die volle Fensterbreite.

Java:
		this.add(lblDateiName, BorderLayout.WEST);
		this.add(btnBeenden, BorderLayout.EAST);
 
Zuletzt bearbeitet:
Kriege ich jetzt haue, wenn ich Frage was ein KSKB ist?
Wenn Du mit der Maus über Abkürzungen fährst, bekommst Du bei manchen Ausdrücken (wie KSKB) die ausgeschriebene Form per Tooltip angezeigt. Im Firefox werden solche Ausdrücke unterstrichen, im IE sind diese leider nicht zu erkennen.

Ein KSKB könnte so aussehen:
Java:
class Test {
	public static void main(String[] args) {
		JFrame frame = new JFrame();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setBounds(0, 0, 700, 200);
		frame.setLocationRelativeTo(null);
		
		frame.getContentPane().add(new JLabel("CENTER", JLabel.CENTER), BorderLayout.CENTER);
		JPanel panel = new JPanel(new BorderLayout());
		JLabel label = new JLabel("   Hier steht eine Statusmeldung ");
		label.setBorder(BorderFactory.createEtchedBorder());
		panel.add(label, BorderLayout.CENTER);
		panel.add(new JButton("Beenden"), BorderLayout.EAST);
		frame.getContentPane().add(panel, BorderLayout.SOUTH);
		frame.setVisible(true);
	}
}
 
Das ist genau das was ich mir vorstelle, werde das in meine Code noch einmal neu einbauen und schauen wo der Fehler lag.

Vielen Dank!

(Ich verwende den IE)
 

Zurück
Oben