Hey Leute,
bin gerade dabei meine Menubar auszulagern, dabei ist mir aufgefallen, dass ich das so nicht stehen lassen kann, weil auch das handling angepasst werden muss, je nach klasse, die es aufruft, bzw. in einzelnen klassen Methoden liegen die aufgerufen werden sollen.
Jetzt die frage, wie lös ich den Actionteil aus, bzw. übergebe einzelne mehtodenaufrufe, damit es noch mehr OO ist. :bahnhof:
Einer meiner Dozenten hätte gesagt, der Programmierstil, sofern vorhanden wäre pathologisch.
Danke für euere Antworten und Grüße
Chris
bin gerade dabei meine Menubar auszulagern, dabei ist mir aufgefallen, dass ich das so nicht stehen lassen kann, weil auch das handling angepasst werden muss, je nach klasse, die es aufruft, bzw. in einzelnen klassen Methoden liegen die aufgerufen werden sollen.
Java:
package gui;
import gui.messwerte.StandardGUI;
import java.awt.event.*;
import javax.swing.*;
/**
*
* @author Christian
*/
public class Menubar implements ActionListener{
// Variablen für die Sichtbarkeit
private boolean progStartB =true;
private boolean progSaveB =true;
private boolean progOpenB =true;
private boolean auswMenuB =true;
//M E N Ü
//Menüpunkte für Programmstart
JMenuItem progStart, progOpen, progSave, progNull, progExit;
//Menüpunkte für die Dateneingabe
JMenuItem dateneingabeItem;
//Menüpunkte für die Auswertung
JMenuItem ausw, auswPerlschnur, auswHorizont, auswGrafik;
//Menüpunkte für Hilfefunktion
JMenuItem hilfe, hilfeVersion, hilfeEinlesen;
/**
* Methode zum erstellen der Menüs
* Erstellen der Menüpunkte und
* Initialisierung der Menüunterpunkte mit Name sowie Einbindung in den ActionListener
*
* @return
*/
public JMenuBar menu(){
JMenuBar bar =new JMenuBar(); //Menüleiste auf die alle Menüpunkte kommen
JMenu programmMenu =new JMenu( "Programm"); //Menü "Programm" erstellen
programmMenu.setMnemonic( 'P'); //Ansprechen des Menüpunktes über Alt+ Markierte Buchstabe
Icon iHome =new ImageIcon( "icon\\home.gif"); //Icon für den Menüpunkt erstellen
progStart =new JMenuItem( "Startbildschirm", iHome); //Menüpunkt erstellen
progStart.addActionListener( this); //Menüpunkt im ActionListener anmelden
programmMenu.add( progStart); //Menüpunkt im Menü anmelden
progStart.setAccelerator( // Funktionalität Strg +Buchstabe nach drücken Alt+ Menü
KeyStroke.getKeyStroke( 'H', InputEvent.CTRL_DOWN_MASK )
);
progStart.setEnabled( progStartB);
Icon iSave =new ImageIcon( "icon\\save_16.png"); //Icon für den Menüpunkt erstellen
progSave =new JMenuItem( "Speichern", iSave); //Menüpunkt erstellen
progSave.addActionListener( this); //Menüpunkt im ActionListener anmelden
programmMenu.add( progSave); //Menüpunkt im Menü anmelden
progSave.setAccelerator( // Funktionalität Strg +Buchstabe nach drücken Alt+ Menü
KeyStroke.getKeyStroke( 'S', InputEvent.CTRL_DOWN_MASK )
);
progSave.setEnabled( progSaveB);
Icon iOpen =new ImageIcon( "icon\\open_16.gif"); //Icon für den Menüpunkt erstellen
progOpen =new JMenuItem( "Öffnen", iOpen); //Menüpunkt erstellen
progOpen.addActionListener( this); //Menüpunkt im ActionListener anmelden
programmMenu.add( progOpen); //Menüpunkt im Menü anmelden
progOpen.setAccelerator( // Funktionalität Strg +Buchstabe nach drücken Alt+ Menü
KeyStroke.getKeyStroke( 'O', InputEvent.CTRL_DOWN_MASK )
);
progOpen.setEnabled( progOpenB);
programmMenu.addSeparator();
Icon iClose =new ImageIcon( "icon\\exit_20.png"); //Icon für den Menüpunkt erstellen
progExit =new JMenuItem( "Werteeingabe Beenden", iClose); //Menüpunkt erstellen
progExit.addActionListener( this); //Menüpunkt im ActionListener anmelden
programmMenu.add( progExit); //Menüpunkt im Menü anmelden
JMenu datInMenu =new JMenu( "Dateneingabe"); // Menü "Dateneingabe" erstellen
datInMenu.setMnemonic( 'D');
dateneingabeItem =new JMenuItem( "Messwerte eingeben"); //Menüpunkt erstellen
dateneingabeItem.addActionListener( this); //Menüpunkt im ActionListener anmelden
datInMenu.add( dateneingabeItem); //Menüpunkt im Menü anmelden
JMenu auswMenu =new JMenu( "Auswertung"); //Menü "Auswertung" erstellen
auswMenu.setMnemonic( 'A'); //Ansprechen des Menüpunktes über Alt+ Markierte Buchstabe
auswMenu.setEnabled( auswMenuB);
ausw =new JMenuItem( "Auswertung"); //Menüpunkt erstellen
ausw.addActionListener( this); //Menüpunkt im ActionListener anmelden
auswMenu.add( ausw); //Menüpunkt im Menü anmelden
auswPerlschnur =new JMenuItem( "Perlschnurverfahren"); //Menüpunkt erstellen
auswPerlschnur.addActionListener( this); //Menüpunkt im ActionListener anmelden
auswMenu.add( auswPerlschnur); //Menüpunkt im Menü anmelden
auswHorizont =new JMenuItem( "Horizontenverfahren"); //Menüpunkt erstellen
auswHorizont.addActionListener( this); //Menüpunkt im ActionListener anmelden
auswMenu.add( auswHorizont); //Menüpunkt im Menü anmelden
auswMenu.addSeparator(); //Mehtode zum einfügen einer Trennlinie
auswGrafik =new JMenuItem( "Grafische Auswertung"); //Menüpunkt erstellen
auswGrafik.addActionListener( this); //Menüpunkt im ActionListener anmelden
auswMenu.add( auswGrafik); //Menüpunkt im Menü anmelden
JMenu hilfeMenu =new JMenu( "Hilfe"); //Hilfemenü
hilfeMenu.setMnemonic( 'H'); //Ansprechen des Menüpunktes über Alt+ Markierte Buchstabe
Icon iHelp =new ImageIcon( "icon\\Help.png");
hilfe =new JMenuItem( "Hilfe", iHelp);
hilfe.addActionListener( this);
hilfeMenu.add( hilfe);
Icon iInfo =new ImageIcon( "icon\\info_16.png"); //Icon für den Menüpunkt erstellen
hilfeVersion =new JMenuItem( "Versionsinfo", iInfo);
hilfeVersion.addActionListener( this);
hilfeMenu.add( hilfeVersion);
hilfeEinlesen =new JMenuItem( "Einlese-Info", iInfo);
hilfeEinlesen.addActionListener( this);
hilfeMenu.add( hilfeEinlesen);
bar.add( programmMenu); //Der Menüleiste das Menü "Programm" hinzufügen
bar.add( datInMenu); //Der Menüleiste das Menü "Dateneingabe" hinzufügen
bar.add( auswMenu); //Der Menüleiste das Menü "Auswertung" hinzufügen
bar.add( hilfeMenu); //Hinzufügen eines Hilfemenüs
return bar;
}
/**
* Methode für die Bestimmtung, welche Menüpunkte/-items angezeigt werden.
* @param progStartB
* @param progSaveB
* @param progOpenB
* @param auswB
*/
public void setMenuesVisible( boolean progStartB, boolean progSaveB, boolean progOpenB, boolean auswB){
this.progStartB =progStartB;
this.progSaveB =progSaveB;
this.progOpenB =progOpenB;
this.auswMenuB =auswB;
}
@Override
public void actionPerformed( ActionEvent e){
if( e.getSource() ==progStart){ //Startbildschirm - Disable
} else if( e.getSource() ==progOpen){ //Öffnen
} else if( e.getSource() ==progSave){ //Speichern - Disable
} else if( e.getSource() ==progExit){ //Beenden
} else if( e.getSource() ==dateneingabeItem){ //Dateneingabemaske start
StandardGUI sg =new StandardGUI();
sg.start();
} else if( e.getSource() ==ausw){
} else if( e.getSource() ==auswPerlschnur){ //Berechnung mittels Perlschnurverfahren
} else if( e.getSource() ==auswHorizont){ //Berechnung mittels Horizontenverfahren
} else if( e.getSource() ==auswGrafik){ //Grafischeauswertung
} else if( e.getSource() ==hilfe){ //Größe Hilfe
} else if( e.getSource() ==hilfeVersion){ //Versionsinformationen
} else if( e.getSource() ==hilfeEinlesen){ //Hilfe für das Einlesen von Textdateien
} else{}
}
}
Jetzt die frage, wie lös ich den Actionteil aus, bzw. übergebe einzelne mehtodenaufrufe, damit es noch mehr OO ist. :bahnhof:
Einer meiner Dozenten hätte gesagt, der Programmierstil, sofern vorhanden wäre pathologisch.
Danke für euere Antworten und Grüße
Chris