StatusBar Optik wie JMenuBar; GUI-Erzeugung delegieren

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

ich hätte da mal zwei Fragen:

1. Ich würde gerne eine StatusBar erzeugen. An und für sich ja auch kein Problem, indem ich von JPanel ableite. Mein Problem ist jetzt allerdings, dass ich gerne den "umgekehrten Look" einer JMenuBar hätte. D.h., oben eine Art Trennlinie und dann den gräulichen Verlauf der JMenuBar. Ich hab' auch schon mal im Quelltext der JMenuBar geschaut, aber zum Verlauf leider gar nichts gefunden und was die Trennlinie betrifft, hab' ich nur die Methode setborderPainted(boolean b) gefunden. Wobei ich mich auch da Frage, wie ich die Trennlinie hinbekomme, denn die normalen Rahmen, die man mittels der BorderFactory zeichnen kann, sind an allen vier Seiten einer Komponente sichtbar. Bei einer JMenuBar handelt es sich aber um eine Trennlinie, die nur unten sichtbar ist (und in meiner StatusBar oben sichtbar sein soll).

2. Die zweite Frage ist ein wenig philosophisch. Ich habe eine Klasse UserInterface, die mein GUI erzeugt. In meinem Fall ist es allerdings so, dass allein die Erzeugung der JMenuBar aufgrund von Accelerators, Mnemonics und relativ vielen Einträgen schon viele Codezeilen beansprucht. Der Code an sich ist wenig anspruchsvoll, aus Gründen der Strukturierung und Lesbarkeit würde ich ihn dennoch gerne auslagern. Mir stellt sich momentan die Frage, welches die eleganteste Möglichkeit ist. Eine Möglichkeit wäre z.B. eine Klasse MyMenuBar, die von JMenuBar erbt und das Menü entweder direkt im Konstruktor erzeugt, oder eine Methode createMyMenuBar aufruft, die mir das Menü zurückliefert. Eine zweite Möglichkeit wäre einfach eine Klasse, in der eine statische Methode vorhanden ist, die mir die JMenuBar erstellt (die Methode müsste nicht zwangsläufig static sein, aber wozu wollte man diese Klasse erst instanziieren, um dann mit einem weiteren Aufruf das Menü zu erzeugen). Dies hätte den Vorteil, dass In dieser Klasse weitere GUI-Elemente erzeugt wedern könnten.

Erzeugung im Konstruktor:
Code:
public class MyMenuBar extends JMenuBar {

public MyMenuBar() {
super();
super.add(new JMenuItem());
...
}

}
Im UserInterface würde dann folgender Code benötigt:
Code:
JFrame mainWindow = new JFrame();
mainWindow.setJMenuBar(new MyMenuBar());

Andere Möglichkeit, Konstruktor ruft Methode zur Erzeugung auf:
Code:
public class MyMenuBar extends JMenuBar {

public MyMenuBar() {
super();
createMyMenuBar(this);
}

private void createMyMenuBar(JMenuBar myMenuBar) {
myMenuBar.add(new JMenuItem());
...
}

}

Klasse mit statischer Methode zur Erzeugung des Menüs (und evtl. weiterer Komponenten):
Code:
public class GuiElements {

public static JMenuBar createMyMenuBar() {
JMenuBar myMenuBar = new JMenuBar();
myMenuBar.add(new JMenuItem());
...
return myMenuBar;
}

public static JPanel createAnotherGuiElement() {
JPanel myPanel = new JPanel();
...
return mPanel;
}

}

Der Wunsch ist also, die Klasse UserInterface (die u.a. das JFrame erzeugt) zu verschlanken. Die letzte Alternative birgt in meinen Augen die Gefahr, dass man quasi alle Komponenten in ihr erzeugt, d.h. man alle Komponenten die ich normalerweise in der Klasse UserInterface erzeugt hätte nun in einer anderen klasse erzeuge, d.h. eine schlanke Klasse UserInterface bekomme, dafür eine andere Klasse vollgepackt wird und das Problem somit nur von einer Klasse in eine andere verlagert wird.

Ideen und Anregungen sehr willkommen.

Grüße,
 

itsmemario

Neues Mitglied
Hm... wieso steht in meinem Post gast als Benutzername? Naja, egal. Die Frage oben stammt auf jeden Fall von mir.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S LayoutManager Fehlerhafte Darstellung einer Statusleiste/Statusbar AWT, Swing, JavaFX & SWT 6
A Eigene StatusBar AWT, Swing, JavaFX & SWT 2
ModellbahnerTT Statusbar AWT, Swing, JavaFX & SWT 3
oliver1974 StatusBar gesucht. AWT, Swing, JavaFX & SWT 7
lin StatusBar AWT, Swing, JavaFX & SWT 2
R "Statusbar" - JFrame mit 'Java Applet Window' AWT, Swing, JavaFX & SWT 18
H Statusbar erzeugen AWT, Swing, JavaFX & SWT 2
I Swing Optik eines JButton an JToolBar anpassen AWT, Swing, JavaFX & SWT 5
S Unterschiedliche Optik trotz gleicher Look and Feel Code? AWT, Swing, JavaFX & SWT 11
sliwalker Optik einer deaktivierten Komponente nachstellen (ausgrauen) AWT, Swing, JavaFX & SWT 6
C JMenuBar AWT, Swing, JavaFX & SWT 6
K Event Handling Über JMenuBar die diversen Panels anzeigen AWT, Swing, JavaFX & SWT 10
J Swing JMenuItem blockiert JMenuBar AWT, Swing, JavaFX & SWT 2
S JMenuBar bei sichtbarer JGlassPane AWT, Swing, JavaFX & SWT 1
R JMenuBar.setFont tut nix ? AWT, Swing, JavaFX & SWT 1
I Swing JMenuBar auch unten am JFrame? AWT, Swing, JavaFX & SWT 2
A Swing JMenuBar updaten AWT, Swing, JavaFX & SWT 2
kaoZ Swing JMenuBar, Preferences, Properties... und viele andere lustige Dinge (Best Practice) AWT, Swing, JavaFX & SWT 15
Q Designfrage zur JMenuBar AWT, Swing, JavaFX & SWT 6
S JMenuBar wiederverwenden und Eventhandling anpassen AWT, Swing, JavaFX & SWT 4
B Swing JMenuBar unten in der Frame setzen? AWT, Swing, JavaFX & SWT 15
Q Fragen zur JMenuBar & Co. AWT, Swing, JavaFX & SWT 3
M Über eine JMenuBar überprüfen ob ein JCheckBoxMenuItem selectiert ist. AWT, Swing, JavaFX & SWT 4
M JMenuBar, JMenu, JMenuItem wird nicht angezeigt AWT, Swing, JavaFX & SWT 16
G Swing JMenuBar zu weit links und oben dargestellt AWT, Swing, JavaFX & SWT 5
B Swing Dynamische JMenuBar AWT, Swing, JavaFX & SWT 2
J JMenuBar ist geaddet, aber nicht im Frame. Wo ist der Fehler? (inkl. Code) AWT, Swing, JavaFX & SWT 2
D JMenuBar - CardLayout (Klasse anzeigen) AWT, Swing, JavaFX & SWT 3
S JMenuBar Frame Abstand AWT, Swing, JavaFX & SWT 3
H jMenuBar AWT, Swing, JavaFX & SWT 13
NR_EIGHT Swing Probleme mit JMenuBar AWT, Swing, JavaFX & SWT 6
M JMenuBar im Applet und paint AWT, Swing, JavaFX & SWT 9
Madlip JMenuBar in JFrame AWT, Swing, JavaFX & SWT 5
B JFrame / JMenuBar => Anfängerprobleme AWT, Swing, JavaFX & SWT 2
R JMenuBar AWT, Swing, JavaFX & SWT 2
S JMenuBar nach 1. Klick deselectieren AWT, Swing, JavaFX & SWT 6
Z JMenuBar wird nicht in JFrame angezeigt AWT, Swing, JavaFX & SWT 2
N JMenuBar verschwindet nicht nach ComponentEvent AWT, Swing, JavaFX & SWT 6
C JMenuBar aktualisieren? AWT, Swing, JavaFX & SWT 2
A Doppelte JMenuBar AWT, Swing, JavaFX & SWT 2
X NullPointerException beim Einfügen einer JMenuBar AWT, Swing, JavaFX & SWT 4
C JMenuBar im JFrame abgehackt AWT, Swing, JavaFX & SWT 7
J Swing JFrame mit JMenuBar, allerdings ohne Erfolg AWT, Swing, JavaFX & SWT 10
K Look&Feel von JMenuBar und Subkomponenten anpassen AWT, Swing, JavaFX & SWT 6
C JMenuBar linksbündig AWT, Swing, JavaFX & SWT 6
C Größe JMenuBar AWT, Swing, JavaFX & SWT 5
KrokoDiehl Swing Actions direkt auf der JMenuBar AWT, Swing, JavaFX & SWT 6
L Swing Kommunikation zwischen JMenuBar und anderen Componenten AWT, Swing, JavaFX & SWT 2
Developer_X Swing JMenuBar Layout AWT, Swing, JavaFX & SWT 2
kniffel JMenuBar aus anderer Klasse AWT, Swing, JavaFX & SWT 10
G Dynamische JMenuBar AWT, Swing, JavaFX & SWT 2
G JMenuBar verschmälern AWT, Swing, JavaFX & SWT 2
M ALT shortcut für JMenuBar deaktivieren AWT, Swing, JavaFX & SWT 3
X JMenuBar überlappt von JPanel :( AWT, Swing, JavaFX & SWT 7
M4nuel Warum überlagert JDesktopPane mein JMenuBar? AWT, Swing, JavaFX & SWT 5
J JMenuBar in Frame einbauen AWT, Swing, JavaFX & SWT 6
D Canvas über JMenuBar AWT, Swing, JavaFX & SWT 7
P JMenuBar und JToolBar Anzeige Probleme AWT, Swing, JavaFX & SWT 5
C JLabel in JMenuBar frei platzieren AWT, Swing, JavaFX & SWT 2
B JMenubar AWT, Swing, JavaFX & SWT 5
Chris_1980 Makierungsfarbe bei JMenuBar ändern AWT, Swing, JavaFX & SWT 5
L Problem mit JMenuBar AWT, Swing, JavaFX & SWT 5
F JTextField rechts in der JMenuBar AWT, Swing, JavaFX & SWT 4
A gezeichnete Linie verschwindet, wenn ich JMenuBar öffne AWT, Swing, JavaFX & SWT 2
I JMenuBar - Menüs sortieren AWT, Swing, JavaFX & SWT 2
S JMenuBar mit Action belegen! AWT, Swing, JavaFX & SWT 5
M JMenuBar AWT, Swing, JavaFX & SWT 7
B JMenuBar sowie Buttons nach repaint auf JPanel AWT, Swing, JavaFX & SWT 2
T JMenuBar ausblenden lassen aber Hotkeys sollen erhalten sein AWT, Swing, JavaFX & SWT 2
S JMenuBar + update AWT, Swing, JavaFX & SWT 3
M JMenuBar - JMenu mit Tastenkombination aufrufen / anzeigen AWT, Swing, JavaFX & SWT 8
T JMenuBar zweizeilig AWT, Swing, JavaFX & SWT 2
A JMenuBar + paint (Image) AWT, Swing, JavaFX & SWT 6
M JmenuBar wird net angezeigt :( AWT, Swing, JavaFX & SWT 6
U komplette JMenuBar deaktivieren? AWT, Swing, JavaFX & SWT 4
S Mausklick reagiert nicht im JMenuBar AWT, Swing, JavaFX & SWT 4
A JMenuBar verschieben. AWT, Swing, JavaFX & SWT 4
T JMenuBar wird nicht richtig angezeigt AWT, Swing, JavaFX & SWT 5
H JFrame, JMenuBar, ScrollBar AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen


Oben