JToolBar nur oben andockbar machen - wie?

Status
Nicht offen für weitere Antworten.
A

Andy

Gast
Hi!

Wenn ich eine JToolBar in ein Panel mit BorderLayout einsetze kann ich ja die Toolbar rausziehen => Sie floated. Weiterhin kann ich sie in jeder Ecke (besser Kante) wieder andocken lassen!
Nun möchte ich aber nur zwei Zustände zulassen: Entweder die Toolbar ist im Norden (also oben) angedockt oder sie "schwebt"!
Also kurz: Wie verhindere ich, dass eine JToolBar unten, links oder rechts angedockt werden kann? ???:L
Ach ja, 'ne Zusatzfrage: Kann ich den Rahmen (also die ober Leiste mit dem X) einer "schwebenden" JToolBar ohne grossen Aufwand entfernen? :?:

DANKE!

Andy
 

dotlens

Top Contributor
entweder schreibst du dir eine eigene ToolBar oder du schreibst eine, welche von JToolBar erbt und veränderst diese. Dann musst du dich aber mit dem code von JToolBar befassen und das 'x' wird schwer wegzukriegen sein
 
A

Andy

Gast
Hi!

Hab' ich mir doch schon gedacht, dass es nicht einfach wird!

Danke!

Andy
 
A

Andy

Gast
Hi!

Hab' nochmal selber drüber nachgedacht und da kam mir doch die Idee!
Eine JToolBar ist in einem BorderLayout nur an den Kanten andockbar, die nicht von anderen Komponenten besetzt sind!
Ergo:
Code:
JToolBar toolbar = getMyToolBar();
JPanel contentPanel = (JPanel) frame.getContentPane();
contentPanel.setLayout (new BorderLayout());
contentPanel.add(getMyContent(),BorderLayout.CENTER);
contentPanel.add(toolbar,BorderLayout.NORTH);
contentPanel.add(new JLabel(),BorderLayout.SOUTH);
contentPanel.add(new JLabel(),BorderLayout.EAST);
contentPanel.add(new JLabel(),BorderLayout.WEST);
Dies ist der ganze Trick! :D

Ich hab' jetzt mal leere JLabel eingefügt!
Noch eine kurze Erläuterung:
frame ist das dazustellende Fenster
getMyToolBar() liefert die fertige JToolBar zurück
getMyContent() liefert alles zurück, was eigentlich im Fenster angezeigt werden soll

Tja, es war doch primitiv! :oops:

Wenn jemand die Fensterleiste (von der "schwebenden" Toolbar) schonmal weggebracht hat, kann er ja trotzdem noch schreiben!

Andy
 

dotlens

Top Contributor
ideen muss man haben :D

würde aber nicht leere Labels einfügen sondern die Klasse "Box" verwenden:
Code:
Box.createRigidArea(new Dimension(0,0));
 
A

Andy

Gast
Danke für den Boxtip!

Hab' mal weiter experimentiert und ein Blick in den Source von javax.swing.plaf.basic.BasicToolBarUI erbrachte folgendes:
Die Theorie: Das "schwebende" Fenster beruht auf JDialog und diesen kann man undekoriert (sprich ohne Fensterleiste) anzeigen lassen.
Die Praxis:
Code:
import javax.swing.*;
import java.awt.*;
import javax.swing.plaf.ComponentUI;

public class UndecoratedToolBarUI extends javax.swing.plaf.basic.BasicToolBarUI {
	protected RootPaneContainer createFloatingWindow(JToolBar toolbar) {
		JDialog window = (JDialog) super.createFloatingWindow(toolbar);
		window.setUndecorated(true);
		return window;
	}
	public static ComponentUI createUI( JComponent c ) {
		return new UndecoratedToolBarUI();
	}
}
und in der GUI:
Code:
myToolbar.setUI(new UndecoratedToolBarUI());
Hat leider den Nachtteil, das die Toolbar nicht mehr angedockt werden kann, da man ja den Dialog nicht schliessen kann! :cry: Ist natürlich noch ein Problem!

Wollte es halt mal in den Raum werfen! :D

Andy
 
A

Andy

Gast
Hat leider den Nachtteil, das die Toolbar nicht mehr angedockt werden kann, da man ja den Dialog nicht schliessen kann! :cry: Ist natürlich noch ein Problem!
Obige Aussage ist Schmarrn! Funktioniert natürlich, lag nur an meiner GUI-Implementation! :oops:
Man kann natürlich durch Hinschieben auf die Kanten, die Toolbar wieder andocken!

Andy
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
kaoZ Swing JToolBar, ImageIcon werden teilweise verdeckt AWT, Swing, JavaFX & SWT 0
U JToolbar resizable o. Ä. AWT, Swing, JavaFX & SWT 3
kaoZ Swing JToolBar AWT, Swing, JavaFX & SWT 13
U JToolBar Button nicht fokussieren AWT, Swing, JavaFX & SWT 2
B JToolBar dynamisch auf mehrere Zeilen erweitern AWT, Swing, JavaFX & SWT 2
Landei Swing JToolbar: Textfelder mit normaler Höhe? AWT, Swing, JavaFX & SWT 2
P Swing JComoBox auf JToolBar AWT, Swing, JavaFX & SWT 4
B Komponente "sauber" entfernen(JToolBar) AWT, Swing, JavaFX & SWT 4
I Swing Optik eines JButton an JToolBar anpassen AWT, Swing, JavaFX & SWT 5
S Drag wie bei JToolbar mit JPanel AWT, Swing, JavaFX & SWT 3
H Swing Den Button einer JToolBar gedrückt halten AWT, Swing, JavaFX & SWT 9
S Hintergrundfarbe in JToolbar nicht angezeigt AWT, Swing, JavaFX & SWT 2
C JToolbar in JTable AWT, Swing, JavaFX & SWT 4
R JMenu in JToolBar AWT, Swing, JavaFX & SWT 6
O Button auf JToolBar rechtsbündig AWT, Swing, JavaFX & SWT 2
M Swing JToolBar Probleme AWT, Swing, JavaFX & SWT 14
A JToolbar lässt sich aus dem Fenster lösen AWT, Swing, JavaFX & SWT 2
E JToolBar ausrichten AWT, Swing, JavaFX & SWT 2
J Swing JToolBar Button mit Icon AWT, Swing, JavaFX & SWT 4
J JToolBar AWT, Swing, JavaFX & SWT 2
M JToolbar nebeneinander? AWT, Swing, JavaFX & SWT 3
H JToolBar Rollover AWT, Swing, JavaFX & SWT 2
D JtoolBar feste Breite ? AWT, Swing, JavaFX & SWT 13
G Icon ans Ende einer JToolbar AWT, Swing, JavaFX & SWT 7
B Toolbar, Toolbar In Toolbar, alterna zu JToolbar AWT, Swing, JavaFX & SWT 3
G JToolBar - addSeparator() funktioniert nicht AWT, Swing, JavaFX & SWT 3
G JToolBar Separator AWT, Swing, JavaFX & SWT 6
C JToolBar ein/ausblenden AWT, Swing, JavaFX & SWT 6
W JToolBar - wohin damit? AWT, Swing, JavaFX & SWT 4
Noar Problem mit Hinzufügen von JToolBar AWT, Swing, JavaFX & SWT 2
G JToolbar gleich als eigenes Fenster öffnen AWT, Swing, JavaFX & SWT 2
A JToolBar: Welcher Button wurde gedrückt? AWT, Swing, JavaFX & SWT 5
A JToolBar: Buttonbreite festlegen AWT, Swing, JavaFX & SWT 7
M Problem mit JComboBox in JToolBar AWT, Swing, JavaFX & SWT 3
padde479 Mehrere JToolBar setzen AWT, Swing, JavaFX & SWT 2
P JMenuBar und JToolBar Anzeige Probleme AWT, Swing, JavaFX & SWT 5
A Hintergrundfrabe eines JButtons innerhalb eines JToolBar AWT, Swing, JavaFX & SWT 4
G JButton wie in JToolBar AWT, Swing, JavaFX & SWT 7
vogella JToolBar mit JTextField - Größe des Text Feldes festlegen AWT, Swing, JavaFX & SWT 2
C JToolBar nicht minimieren beim Minimieren des Eltern-Frames AWT, Swing, JavaFX & SWT 4
S Mehere Componenten setEnabled(false) in JToolBar AWT, Swing, JavaFX & SWT 4
S JToolBar und JTabbedPane AWT, Swing, JavaFX & SWT 2
B scrollbare jtoolbar sobald fenster zu klein wird AWT, Swing, JavaFX & SWT 5
B floating jtoolbar von programmstart an? AWT, Swing, JavaFX & SWT 4
B JToolBar Button größe AWT, Swing, JavaFX & SWT 10
I Button in JToolbar gleich groß AWT, Swing, JavaFX & SWT 2
I Hat jemand eine JToolBar? AWT, Swing, JavaFX & SWT 4
A Vertikaler JSeparator in einer JToolbar AWT, Swing, JavaFX & SWT 2
M Gruppierungen in JToolbar AWT, Swing, JavaFX & SWT 3
T Mehrere Fragen zu JToolBar AWT, Swing, JavaFX & SWT 2
N Knopf ganz oben (JFrame) AWT, Swing, JavaFX & SWT 9
Bluedaishi JTextArea gefundene Zeile nach Oben Scrollen AWT, Swing, JavaFX & SWT 13
S JTextArea Text nach oben wandern lassen AWT, Swing, JavaFX & SWT 7
T JLabel Textinhalt von Oben anzeigen AWT, Swing, JavaFX & SWT 1
K Swing JPanel nach oben und links vergrößern AWT, Swing, JavaFX & SWT 3
J Swing: JFrame nach oben "aufklappen" AWT, Swing, JavaFX & SWT 0
C JTextPane scrollt mit setText() immer nach oben AWT, Swing, JavaFX & SWT 2
M Text Area 1. Zeile oben AWT, Swing, JavaFX & SWT 4
M Graphics.drawImage von unten nach oben abbilden lassen AWT, Swing, JavaFX & SWT 6
J Layout: oben 20% unten 80% AWT, Swing, JavaFX & SWT 12
G Swing JMenuBar zu weit links und oben dargestellt AWT, Swing, JavaFX & SWT 5
S ActionListener "nach oben weitergeben" AWT, Swing, JavaFX & SWT 10
C TextArea Ausgabe immer ganz oben AWT, Swing, JavaFX & SWT 3
B Swing JList Letzte Einträge oben ... AWT, Swing, JavaFX & SWT 6
S Swing JTabbedPane: Inhalt soll oben links anfangen AWT, Swing, JavaFX & SWT 6
badfish Swing ImageIcon auf JLabel, Fenster Maximieren verbieten und Icon oben links austauschen? AWT, Swing, JavaFX & SWT 5
A Titled Border nur oben? AWT, Swing, JavaFX & SWT 3
O JTable Zeilen "nach oben" verschieben AWT, Swing, JavaFX & SWT 3
A Fenster maximieren (oben rechts) verhindern AWT, Swing, JavaFX & SWT 3
G JList und ein neues Element oben in der Liste einfügen AWT, Swing, JavaFX & SWT 4
G Komponente oben positionieren (BorderLayout) AWT, Swing, JavaFX & SWT 3
A JPopupMenu: Nach oben aufpoppen AWT, Swing, JavaFX & SWT 9
S 2 ContentPanels oben + unten in ein JPanel ? AWT, Swing, JavaFX & SWT 5
G In JScrollPane nach oben springen AWT, Swing, JavaFX & SWT 7
P GridBagLayout - links oben beginnen. AWT, Swing, JavaFX & SWT 6
S ComboBox nach oben aufklappen AWT, Swing, JavaFX & SWT 3
B JscrollPane scrollt nicht nach links oder oben AWT, Swing, JavaFX & SWT 3
V Wie kann man SWT-TabItems unter Pocket PC oben anzeigen? AWT, Swing, JavaFX & SWT 2
E jtree, icon oben anordnen AWT, Swing, JavaFX & SWT 2
G Fenstergröße nur nach oben veränderbar einstellen AWT, Swing, JavaFX & SWT 7
G GUI: Oben und unten Textfeld getrennt von einem Splitter AWT, Swing, JavaFX & SWT 2
P Zeichnen nur von oben links nach unten rechts möglich AWT, Swing, JavaFX & SWT 4
D JInternalFrame mit fester komponente oben? AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben