Aloha, hier mal eine kleine Frage bezüglich der Konstruktion einer JMenuBar, was macht mehr sinn / ist die Sauberere Lösung ?
Beispiel Ansatz I: ( gekapselt in einer Methode )
Der dazugehörige Aufruf im Konstruktor wäre dann
oder in die Realisierung in einer Separaten klasse, hier mal nicht abgeleitet ?
Beispiel Ansatz II:
Der dazugehörige Aufruf im Konstruktor wäre dann
Die Frage ist jetzt , was macht vom Aufbau her mehr Sinn ? , Variante II ist definitiv die Lösung die mehr Zeit in Anspruch nimmt, allerdings ist es so denke ich auch einfacher nachher die Eventbehandlung anzugehen, da ich auch eigene Setter anbieten kann die mir gewisse Komponenten liefern, oder ich einfach eine innere Klasse als Listener definieren kann.
Was meint ihr ?
Beispiel Ansatz I: ( gekapselt in einer Methode )
Java:
private JMenuBar createMenuBar(){
JMenuBar menuBar = new JMenuBar();
String[] entrys = {"Datei", "Bearbeiten", "Suchen", "Einstellungen", "Daten", "Fenster", "Hilfe"};
for (int i = 0; i < entrys.length; i++) {
menuBar.add(new JMenu(entrys[i]));
}
return menuBar;
}
Der dazugehörige Aufruf im Konstruktor wäre dann
Java:
bar = createMenuBar();
oder in die Realisierung in einer Separaten klasse, hier mal nicht abgeleitet ?
Beispiel Ansatz II:
Java:
package de.kaoz.components;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class SimpleJMenuBar {
JMenuBar bar;
JMenu fileMenu, editMenu, optionMenu, searchMenu, dataMenu, windowMenu, helpMenu;
JMenuItem file, open, save, saveTo, importFile, exportFile, close;
public SimpleJMenuBar() {
initialise();
addToBar();
}
private void initialise(){
bar = new JMenuBar();
fileMenu = new JMenu("Datei");
editMenu = new JMenu("Bearbeiten");
optionMenu = new JMenu("Einstellungen");
searchMenu = new JMenu("Suchen");
dataMenu = new JMenu("Daten");
windowMenu = new JMenu("Fenster");
helpMenu = new JMenu("Hilfe");
file = new JMenuItem("Neu...");
open = new JMenuItem("Öffnen...");
save = new JMenuItem("Speichern...");
saveTo = new JMenuItem("Speichern unter...");
importFile = new JMenuItem("Importieren...");
exportFile = new JMenuItem("Exportieren...");
close = new JMenuItem("Beenden...");
}
private void addToBar(){
fileMenu.add(file);
fileMenu.add(open);
fileMenu.addSeparator();
fileMenu.add(save);
fileMenu.add(saveTo);
fileMenu.addSeparator();
fileMenu.add(importFile);
fileMenu.add(exportFile);
fileMenu.addSeparator();
fileMenu.add(close);
bar.add(fileMenu);
bar.add(editMenu);
bar.add(optionMenu);
bar.add(searchMenu);
bar.add(dataMenu);
bar.add(windowMenu);
bar.add(helpMenu);
}
public JMenuBar getBar(){
return this.bar;
}
}
Der dazugehörige Aufruf im Konstruktor wäre dann
Java:
bar = new SimpleJMenuBar().getBar();
Die Frage ist jetzt , was macht vom Aufbau her mehr Sinn ? , Variante II ist definitiv die Lösung die mehr Zeit in Anspruch nimmt, allerdings ist es so denke ich auch einfacher nachher die Eventbehandlung anzugehen, da ich auch eigene Setter anbieten kann die mir gewisse Komponenten liefern, oder ich einfach eine innere Klasse als Listener definieren kann.
Was meint ihr ?
Zuletzt bearbeitet: