Je veux créer une description de barres de menus (articles et connectés avec eux-actions ou méthodes de gestionnaire) avec une certaine abstraction de la bibliothèque gui. De quelle manière je peux le faire?Description abstraite de Menubar
certains projets
structure de données (sans méthodes d'accès et d'autres choses):
public class MenuInfoHolder {
List<Column> menu;
public static class Column {
SimpleItem title;
List<Block> blocks;
}
public static class SimpleItem{
String title;
char key;
}
public static class Block{
List<SimpleItem> items;
}
public static abstract class ActionProducedItem extends SimpleItem {
abstract void invokeActionHandler(ActionHandler handler);
}
}
et pourrait ici être un peu en utilisant, comme
Menu menu = new Menu();
ActionProducedItem item = new ActionProducedItem("Aaaa", 'a'){
@Override
void invokeActionHandler(ActionHandler handler) {
handler.foo();
}
};
Block block = new Block();
block.add(item);
Column column = new Column("BBB", 'B');
column.add(block);
menu.add(column);
N'existe une autre meilleure mise en œuvre (probablement avec le modèle de constructeur ou le cadre de ressort)?
UPD: un autre monde,
utilisant SWT, smt comme:
final Menu popupMenu = new Menu(shell, SWT.BAR);
MenuItem menuItem = new MenuItem(popupMenu, SWT.CASCADE);
menuItem.setText("More options");
Menu subMenu = new Menu(menuItem);
menuItem.setMenu(subMenu);
...
shell.setMenuBar(menu);
utilisant Swing, smt comme:
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
JMenu fileMenu = new JMenu("File");
JMenu editMenu = new JMenu("Edit");
menuBar.add(fileMenu);
Mais dans les deux cas, nous fonctionnons avec les mêmes données. Donc je veux faire de l'abstraction à ce sujet.
Merci.
Vos exemples ne montrent pas vraiment ce que vous essayez d'accomplir (pour moi de toute façon). Pouvez-vous entrer dans de meilleurs détails quels sont vos objectifs? –
@ Mark Peters: Mise à jour. –