Mein Kopf dreht sich... Brauche Hilfe beim GUI gestalten

LennyB

Mitglied
Hallo,
ich möchte eine Anwendung, die ich bereits unter Win32 mit C++ fertig habe der Plattformunabhängigkeit halber nach JAVA portieren. Jetzt macht mir die Umsetzung des GUI ernsthafte Probleme... mir schwirrt der Kopf:

Was ich haben will:
Ein Multi Document Interface, in dem auf der rechten Seite eine Spalte für Toolpanels ist, also kleine Fenster, die Tooleinstellungen enthalten. Der Rest der Clientfläche des Hauptfensters soll für die Projektfenster verfügbar sein.

Wie ich mir das (ungefähr) vorstelle das zu realisieren:
1. JFrame als Hauptfenster
2. JPanel als ContentPane reinpflanzen und dort ein BorderLayout einsetzen.
3. DesktopPane mit Alignment BorderLayout.RIGHT in die ContentPane (aus 2.) für den Bereich der Projektfenster reinpflanzen.
4. ScrollPane mit Alignment BorderLayout.LEFT für die Toolpanelspalte in die ContentPane (aus 2.) reinpflanzen.
5. Dem Toolbereich-Scrollpane ein CardLayout verpassen und die Toolpanels reinsetzen.

Wer sich jetzt fragt, warum ich für den Toolbereich ein ScrollPane verwenden will: Es kann sein, daß mehr Toolpanels offen sind als vertikal dargestellt werden können.. Dann soll es möglich sein vertikal durch die Toolpanels zu scrollen.

Meine Frage: Ist das so der richtige Ansatz für das was ich vorhabe oder liege ich falsch?

Danke im Voraus
Lenny
 

André Uhres

Top Contributor
Da JFrame schon eine Contentpane mit Borderlayout hat, kann Punkt 2 entfallen.
DesktopPane wäre wohl besser im BorderLayout.CENTER.
Aber insgesamt ist dein Ansatz im Prinzip schon nicht schlecht. Ich verstehe nicht, wieso dir der Kopf schwirrt. Wo hast du denn Probleme?
 

LennyB

Mitglied
Hallo Andre (wo zum Geier ist das e mit dem Strich drüber? ;) )
Erstmal danke für Deine Antwort. Tja, der Kopf schwirrt mir, weil ich seit 2000 nix mehr mit Java gemacht habe und irgendwie alles verschüttet ist. Zudem habe ich mich gleich in NetBeans gestürzt und wie mit allen GUI-Generatordingern läuft da zumindest am Anfang nicht alles so wie man es will.

Ok, ja, die ContentPane ist schon da, richtig, siehst Du... hatte ich vergessen. Auch die Sache mit dem BorderLayout.CENTER macht sicher mehr Sinn.

Schön zu wissen, daß mein Gedankengang nicht falsch ist. Ich werde das jetzt mal versuchen in NetBeans reinzupfriemeln und sehen ob es funktioniert wie erwartet. Ansonsten bin ich wieder da....
 

LennyB

Mitglied
@eRaaaa *LOL*

Ok, ich denke mal, ich muss mich erstmal mit diesem NetBeans IDE vernünftig beschäftigen -> Doku lesen.
Ich scheiterte bereits daran dem ScrollPane für den Toolbereich den gewünschten LayoutManager hinzuzufügen. Ja, im Code geht das wohl, aber im IDE findet sich kein Menueintrag um das hinzubekommen. Ich bin dann wieder zurück wenn ich die NetBeans Doku gefressen habe... oder allgemei zum coden von Hand zurückgekehrt bin... :D
 

LennyB

Mitglied
Hi Michael!
Ja, da habe ich gestern noch "spassige Erfahrungen" mit gemacht. Deshalb hat jetzt der View der ScrollPane den LayoutManager spendiert bekommen :D

Jetzt funktioniert es FAST! Aber jetzt bringen micht die LayoutManager zum rotieren. Vielleicht kann ja jemand helfen:

Ich habe jetzt mehrere kleinere Panels mit Borders die untereinander im ToolPanel angezeigt werden sollen. Zuerst dachte ich ja an einBoxLayout aber dann werden die Panels bei maximierter Anwendung gestreckt, so daß sie das gesamte ToolPanel vertikal füllen. Da ich in den einzelnen Panels GridLayouts zur Anordnung der darin enthaltenen Eingabefelder und anderer Komponenten verwende, werden diese auch vertikal gestreckt.

Das einzige Layout was zumindest bei einem Panel im Toolbereich die Höhe unangetastet liess war das BorderLayout wenn ich das Panel auf BorderLayout.NORTH setzte. Das funktioniert allerdings nicht bei mehreren Panels.

Also nochmal die Frage im Klartext:
Wie kann ich mehrere kleinere Panels in einem hohen, schmalen Panel untereinander anordnen. Dabei soll folgendes beachtet werden. Die kleineren (child) Panels sollen:

1. horizontal auf die Breite des Parents gestreckt werden.
2. vertikal so gross sein, daß sie nur ihren Inhalt anzeigen und NICHT vertikal gestreckt werden.

Ausserdem soll, wenn die kleineren (child) Panels zusammen nicht die Höhe des grossen Parentpanels erreichen der übrige Platz am unteren Ende des Parentpanels schlichtweg frei bleiben.

Ich hoffe ich konnte das einigermassen verständlich rüberbringen. Geht sowas?

Danke im Voraus

Lenny
 

André Uhres

Top Contributor
Versuch's mal mit "ScrollablePanel" und "WrapLayout" aus Java Tips Weblog
Java:
toolsMain = new ScrollablePanel(new WrapLayout());

tools1 = new JPanel(new WrapLayout());
tools1.add(new JButton("Test a1"));
tools1.add(new JButton("Test a2"));
tools1.add(new JButton("Test a3"));
tools1.add(new JButton("Test a4"));
toolsMain.add(tools1);

tools2 = new JPanel(new WrapLayout());
tools2.add(new JButton("Test b1"));
tools2.add(new JButton("Test b2"));
tools2.add(new JButton("Test b3"));
tools2.add(new JButton("Test b4"));
toolsMain.add(tools2);

add(new JScrollPane(toolsMain, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
        JScrollPane.HORIZONTAL_SCROLLBAR_NEVER), BorderLayout.WEST);
 
Zuletzt bearbeitet:

LennyB

Mitglied
Danke nochmals André <-- schau der Strich ist jetzt da ;)
Ok, da werde ich mich mal durchbaggern. Mir ist allerdings nicht ganz klar wozu ich das WrapLayout brauchen soll, weil keine Komponenten umgebrochen (gewrapped) werden. Aber ich lese mich mal in die Komponenten ein. Vielleicht wird es mir dann ja klar.
 

André Uhres

Top Contributor
Mir ist allerdings nicht ganz klar wozu ich das WrapLayout brauchen soll, weil keine Komponenten umgebrochen (gewrapped) werden.
Natürlich werden keine Komponenten umgebrochen, sondern Zeilen. Wraplayout ist einfach nur ein verbessertes Flowlayout. Dabei bezieht sich "Wrap" auf den Zeilenumbruch, der bei Flowlayout unbefriedigend ist.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
berserkerdq2 Mein Rechteck hat 4 Seiten, ich soll je nach dem, welche Seite berührt wurde, etwas ausführen, wie prüfe ich das? AWT, Swing, JavaFX & SWT 12
E LayoutManager Welcher Layout-Mix löst mein Problem? AWT, Swing, JavaFX & SWT 3
R Swing Hat mein JFrame meinen Component? AWT, Swing, JavaFX & SWT 2
B JavaFX habe mein Problem fett markiert AWT, Swing, JavaFX & SWT 2
G Swing Wenn ich mein JFrame Fenster vergrößere die Inhalte anpassen AWT, Swing, JavaFX & SWT 1
Thallius Warum refrehsed mein JTable nicht? AWT, Swing, JavaFX & SWT 5
B JavaFX Wo liegt mein Gedankenfehler ??? KeyEvent geht nicht ... AWT, Swing, JavaFX & SWT 8
W Swing JScrollPane für mein Fenster AWT, Swing, JavaFX & SWT 4
S Oracle's neue Sicherheitseinstellungen zerstoeren mein Applet. Was tun? AWT, Swing, JavaFX & SWT 3
R JavaFX Mein SceneBuilder Projekt AWT, Swing, JavaFX & SWT 3
N LookAndFeel Wie kann ich mein eigenes LookAndFeel machen? AWT, Swing, JavaFX & SWT 6
J Swing Warum wird mein Jpeg nicht angezeigt? AWT, Swing, JavaFX & SWT 4
T SWT Warum ist mein 1.Tree Node selektiert? AWT, Swing, JavaFX & SWT 11
M Warum funktioniert mein Applet nicht? AWT, Swing, JavaFX & SWT 6
P AWT Wie kann mein listener den Inhalt eines anderen Textfelds ändern? AWT, Swing, JavaFX & SWT 10
C Swing Linux mag mein Swing-repaint() nicht... AWT, Swing, JavaFX & SWT 7
V Swing Mein swingender Pokertisch macht Probleme AWT, Swing, JavaFX & SWT 10
G LookAndFeel SwingUtilities.updateComponentTreeUI(frame) <- wie heißt mein Frame? AWT, Swing, JavaFX & SWT 5
hdi Swing JTable: Mein CellRenderer ist ein Performance-Killer? AWT, Swing, JavaFX & SWT 7
R Japaner koennen mein Programm nicht nutzen..? AWT, Swing, JavaFX & SWT 11
K Mein Informatikprojekt läuft aus dem Ruder Hilfe. F1 ^^ AWT, Swing, JavaFX & SWT 5
J SwingX-Demo - mein Waterloo AWT, Swing, JavaFX & SWT 9
hdi mein layout verählt sich komisch AWT, Swing, JavaFX & SWT 4
M4nuel Warum überlagert JDesktopPane mein JMenuBar? AWT, Swing, JavaFX & SWT 5
C Komme nicht an mein textfeld AWT, Swing, JavaFX & SWT 3
P JRadioButton in Schleife erstellen > wo liegt mein Fehler AWT, Swing, JavaFX & SWT 2
P Ignoriert mein setSize()? AWT, Swing, JavaFX & SWT 2
R JFilechooser: gewählte Datei in mein FileReader übergeben AWT, Swing, JavaFX & SWT 18
C Mein erstes kleines Swing-Projekt - Probleme AWT, Swing, JavaFX & SWT 8
K JTable - warum funktioniert mein CellRenderer nicht? AWT, Swing, JavaFX & SWT 9
V Verstehe mein Druckproblem nicht AWT, Swing, JavaFX & SWT 2
M Wo bleibt mein ScrollPane? AWT, Swing, JavaFX & SWT 3
G Mein JFrame aktualisiert sich nicht richtig AWT, Swing, JavaFX & SWT 3
P Warum braucht mein kleines Programm 20 MB Speicher? AWT, Swing, JavaFX & SWT 13
Q Mein erstes GUI - Probleme AWT, Swing, JavaFX & SWT 2
K mein keyListener scheint Konflict haben mit mouseListener AWT, Swing, JavaFX & SWT 6
E warum wird mein bild nicht angezeigt? AWT, Swing, JavaFX & SWT 6
Z Look&Feel-Wechsel bringt mein GUI durcheinander AWT, Swing, JavaFX & SWT 5
T SWT Tabellen Kopf Schrift bearbeiten AWT, Swing, JavaFX & SWT 2
K kopf einer tabelle über mehrere spalten AWT, Swing, JavaFX & SWT 3
S Tooltip auf Kopf eine JTable? AWT, Swing, JavaFX & SWT 2
E Java FX ProgressIndicator dreht sich nicht AWT, Swing, JavaFX & SWT 8
Tort-E JavaFX ProgressIndicator dreht sich nicht AWT, Swing, JavaFX & SWT 2
K 3d balken der sich dreht AWT, Swing, JavaFX & SWT 5
P Swing FocusTraversalPolicy dreht sich im Kreis AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben