Hallo.
Ich habe meine kleinen ersten Schritte bezüglich grafischer Obefläche gemacht. Ich bin ziemlich schnell mit Java an sich zurecht gekommen. Allerdings sieht mein Code von der strukturierung wohl eher nicht wie javacode aus. Er läuft zwar einwandfrei, allerdings glaube ich, dass der Code anders organisiert sein sollte.
Konkret spreche ich von:
- mehr Klassen, als diese die ich verwendet habe
- aufteilung in mehrere files
- vielleicht andere zugriff auf die befehle
- vorallem: mehr Funktionen?
Bin mir jetzt nicht sicher, allerdings denke ich, dass mein Code ziemlich sequenziell aussieht und was ich über Java gelesen habe, sollte das eher nicht so sein.
Ich will jetzt nicht genau alles über meinen Code im kleinsten Detail wissen, nur eine grobe Einschätzung anhand meines Beispiels wie man den Code besser gestalten könnte.
Klar gibt es Bücher. Aber die sind für mich etwas zu allgemein gehalten. Wenn ich hier mein ersten Beispiel analysieren lasse, habe ich bestimmt fürs Leben mehr davon. Denn das ist mein Stil und nicht der, der das Buch schreibt.
Ich hoffe ihr könnt meine Situation verstehen und mir helfen. Dankeschön.
PS: Ich erwarte keine Aufsätze, wenn vielleicht jeder der Lust hat etwas erwähnen würde, dann hätte ich bei einigen Antworten sicherlich schon genügend davon. wer natürlich will, darf tagelang analysieren
	
	
	
	
	
		
	
			
			Ich habe meine kleinen ersten Schritte bezüglich grafischer Obefläche gemacht. Ich bin ziemlich schnell mit Java an sich zurecht gekommen. Allerdings sieht mein Code von der strukturierung wohl eher nicht wie javacode aus. Er läuft zwar einwandfrei, allerdings glaube ich, dass der Code anders organisiert sein sollte.
Konkret spreche ich von:
- mehr Klassen, als diese die ich verwendet habe
- aufteilung in mehrere files
- vielleicht andere zugriff auf die befehle
- vorallem: mehr Funktionen?
Bin mir jetzt nicht sicher, allerdings denke ich, dass mein Code ziemlich sequenziell aussieht und was ich über Java gelesen habe, sollte das eher nicht so sein.
Ich will jetzt nicht genau alles über meinen Code im kleinsten Detail wissen, nur eine grobe Einschätzung anhand meines Beispiels wie man den Code besser gestalten könnte.
Klar gibt es Bücher. Aber die sind für mich etwas zu allgemein gehalten. Wenn ich hier mein ersten Beispiel analysieren lasse, habe ich bestimmt fürs Leben mehr davon. Denn das ist mein Stil und nicht der, der das Buch schreibt.
Ich hoffe ihr könnt meine Situation verstehen und mir helfen. Dankeschön.
PS: Ich erwarte keine Aufsätze, wenn vielleicht jeder der Lust hat etwas erwähnen würde, dann hätte ich bei einigen Antworten sicherlich schon genügend davon. wer natürlich will, darf tagelang analysieren
		Code:
	
	package cdverwaltung;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Hauptfenster 
{
	JFrame form;
	MenuDateiBeendenListener menuDateiBeendenListener = new MenuDateiBeendenListener();
	MenuDateiOeffnenListener menuDateiOeffnenListener = new MenuDateiOeffnenListener();
	MenuDateiSpeichernListener menuDateiSpeichernListener = new MenuDateiSpeichernListener();
	MenuInfoAboutListener menuInfoAboutListener = new MenuInfoAboutListener();
		
	public Hauptfenster() 
	{
		super();
		
		form = new JFrame("CD-Verwaltung - © 2007 Claudio Bernasconi" );
		form.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		form.setSize(800, 600);
		
		Toolkit toolkit = Toolkit.getDefaultToolkit();
	    Dimension d_aufloesung = toolkit.getScreenSize();
	    
	    form.setLocation( d_aufloesung.width / 2 - 400, d_aufloesung.height / 2 - 300 );
		//Menüeinträge DATEI
		JMenuItem menuDateiNeuerEintrag = new JMenuItem( "Neuer Eintrag...", new ImageIcon( getClass().getResource("icons/small/new.gif") ) );
		menuDateiNeuerEintrag.setAccelerator(KeyStroke.getKeyStroke('N',InputEvent.CTRL_MASK));
		JMenuItem menuDateiSuchen = new JMenuItem( "Suchen...", new ImageIcon( getClass().getResource("icons/small/find.gif") ) );
		menuDateiSuchen.setAccelerator(KeyStroke.getKeyStroke('F',InputEvent.CTRL_MASK));
		JMenuItem menuDateiOeffnen = new JMenuItem( "Öffnen...", new ImageIcon( getClass().getResource("icons/small/open.gif") ) );
		menuDateiOeffnen.setAccelerator(KeyStroke.getKeyStroke('O',InputEvent.CTRL_MASK));
		menuDateiOeffnen.addActionListener(menuDateiOeffnenListener);
		JMenuItem menuDateiSpeichern = new JMenuItem( "Speichern...", new ImageIcon( getClass().getResource("icons/small/save.gif") ) );
		menuDateiSpeichern.setAccelerator(KeyStroke.getKeyStroke('S',InputEvent.CTRL_MASK));
		menuDateiSpeichern.addActionListener(menuDateiSpeichernListener);
		JMenuItem menuDateiBeenden = new JMenuItem( "Beenden" );
		menuDateiBeenden.setAccelerator(KeyStroke.getKeyStroke('Q',InputEvent.CTRL_MASK));
		menuDateiBeenden.addActionListener(menuDateiBeendenListener);
		
		//Menüeinträge EINSTELLUNGEN
		JMenuItem menuEinstellungenNummern = new JMenuItem( "Nummern...", new ImageIcon( getClass().getResource("icons/small/nummern.gif") ) );
		menuEinstellungenNummern.setAccelerator(KeyStroke.getKeyStroke("F5"));
		JMenuItem menuEinstellungenBetriebssysteme = new JMenuItem( "Betriebssysteme...", new ImageIcon( getClass().getResource("icons/small/system.gif") ) );
		menuEinstellungenBetriebssysteme.setAccelerator(KeyStroke.getKeyStroke("F6"));
		JMenuItem menuEinstellungenSpielKategorien = new JMenuItem( "Spiel Kategorien...", new ImageIcon( getClass().getResource("icons/small/spiel.gif") ) );
		menuEinstellungenSpielKategorien.setAccelerator(KeyStroke.getKeyStroke("F7"));
		JMenuItem menuEinstellungenFilmarten = new JMenuItem( "Filmarten...", new ImageIcon( getClass().getResource("icons/small/film.gif") ) );
		menuEinstellungenFilmarten.setAccelerator(KeyStroke.getKeyStroke("F8"));
		JMenuItem menuEinstellungenMusikrichtungen = new JMenuItem( "Musikrichtungen...", new ImageIcon( getClass().getResource("icons/small/musik.gif") ) );
		menuEinstellungenMusikrichtungen.setAccelerator(KeyStroke.getKeyStroke("F9"));
		
		//Menüeinträge INFO
		JMenuItem menuInfoHilfe = new JMenuItem( "Hilfe...", new ImageIcon( getClass().getResource("icons/small/help.gif") ) );
		menuInfoHilfe.setAccelerator(KeyStroke.getKeyStroke("F1"));
		JMenuItem menuInfoAbout = new JMenuItem( "About...", new ImageIcon( getClass().getResource("icons/small/about.gif") ) );
		menuInfoAbout.addActionListener(menuInfoAboutListener);
		
		//Mennübar einrichten
		JMenuBar mbar = new JMenuBar();
		
		//Menü DATEI einrichten
		JMenu menuDatei = new JMenu( "Datei" );
		menuDatei.setMnemonic('D');
		menuDatei.add(menuDateiNeuerEintrag);
		menuDatei.add(menuDateiSuchen);
		menuDatei.addSeparator();	//Trennstrich
		menuDatei.add(menuDateiOeffnen);
		menuDatei.add(menuDateiSpeichern);
		menuDatei.addSeparator();	//Trennstrich
		menuDatei.add(menuDateiBeenden);
		mbar.add(menuDatei);
		
		//Menü EINSTELLUNGEN einrichten
		JMenu menuEinstellungen = new JMenu( "Einstellungen" );
		menuEinstellungen.setMnemonic('E');
		menuEinstellungen.add(menuEinstellungenNummern);
		menuEinstellungen.add(menuEinstellungenBetriebssysteme);
		menuEinstellungen.add(menuEinstellungenSpielKategorien);
		menuEinstellungen.add(menuEinstellungenFilmarten);
		menuEinstellungen.add(menuEinstellungenMusikrichtungen);
		mbar.add(menuEinstellungen);
		
		//Menü INFO einrichten
		JMenu menuInfo = new JMenu( "Info" );
		menuInfo.setMnemonic('I');
		menuInfo.add(menuInfoHilfe);
		menuInfo.add(menuInfoAbout);
		mbar.add(menuInfo);
		
		//Menü dem Fenster hinzufügen
		form.setJMenuBar( mbar );
		
		//Fenster sichtbar machen
		form.setVisible(true);
	}
	
	class MenuDateiBeendenListener implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			System.exit(0);
		}
	}
	
	class MenuDateiOeffnenListener implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			FileDialog fdialog = new FileDialog(form, "Öffnen", FileDialog.LOAD);
			fdialog.setDirectory("C:\\Programme\\CD-Verwaltung\\");
			fdialog.setLocation(50,50);
			fdialog.setVisible(true);
			//Directory und Datei die ausgewählt wurden
			System.out.print( fdialog.getDirectory() );
			System.out.println( fdialog.getFile() );
			
			if( fdialog.getFile() != null )
			{
				//Prozess eine Datei zu laden
				JOptionPane.showConfirmDialog(form, "Datei geladen.",
    					"Geladen", JOptionPane.CLOSED_OPTION, JOptionPane.INFORMATION_MESSAGE);			
			}
		}
	}
	
	class MenuDateiSpeichernListener implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			FileDialog fdialog = new FileDialog(form, "Speichern", FileDialog.SAVE);
			fdialog.setDirectory("C:\\Programme\\CD-Verwaltung\\");		    
			fdialog.setVisible(true);
			//Directory und Datei die ausgewählt wurden
			System.out.print( fdialog.getDirectory() );
			System.out.println( fdialog.getFile() );
			
			if( fdialog.getFile() != null )
			{
				//Prozess eine Datei zu speichern
				
				JOptionPane.showConfirmDialog(form, "Datei gespeichert.",
    					"Gespeichert", JOptionPane.CLOSED_OPTION, JOptionPane.INFORMATION_MESSAGE);				
			}
		}
	}
	
	class MenuInfoAboutListener implements ActionListener
	{
		public void actionPerformed(ActionEvent e)
		{
			Toolkit toolkit = Toolkit.getDefaultToolkit();
		    Dimension d_aufloesung = toolkit.getScreenSize();
			
		    ClassLoader cldr = this.getClass().getClassLoader(); 
		    ImageIcon icon = new ImageIcon(cldr.getResource("cdverwaltung/logo.gif"));
		    JLabel about = new JLabel( "<html>
CD-Verwaltung v. 1.0
© 2007 Claudio Bernasconi
All rights reserved.</p></html>", icon, JLabel.LEFT );
			
		    JDialog dialog = new JDialog(form, "About CD-Verwaltung", true );
			dialog.setSize(250,120);
			dialog.setLayout( new FlowLayout() );
			dialog.setLocation( d_aufloesung.width / 2 - 125, d_aufloesung.height / 2 - 60 );
			dialog.getContentPane().add(about);
			dialog.setResizable(false);
			dialog.setVisible(true);
		}
	}
	public static void main(String[] args) 
	{
		try 
		{
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        }
        catch(Exception e) 
        {
            e.printStackTrace();
        } 
        
		new Hauptfenster();
	}
} 
				 
 
		 
 
		 
 
		 
 
		 
 
		