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();
}
}