ActionListener-Klasse will Methode nicht annehmen

javanatiker

Mitglied
Hallo,
Ích habe ein riesiges Problem und zwar soll ich eine kleine Datenbank erstellen in der ich Haushaltsgegenstände speichern kann. Die GUI ist fertig, alles super aber irgendwie möchte ich meine Daten auch in einer Liste speichern, die ich in einer Liste in meiner GUI ausgeben kann. ich soll dazu eine seperate ActionListener Klasse erstellen aber genau die macht mir arge probleme:

Java:
package gruppe03.mvc.gui;

import gruppe03.mvc.model.GegenstandInfo;
import gruppe03.mvc.model.Stammdaten;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.LayoutManager;
import java.awt.TextArea;
import java.awt.event.ActionEvent;

import javax.swing.*;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;

import gruppe03.mvc.model.GegenstandInfo;



public class GegenstandInfoDialog extends JFrame
{
	
	private GegenstandInfo model;
	private JLabel LabelEingabeGegenstandBeschreibung = new JLabel ("Beschreibung eingeben");
	private JTextField EingabeGegenstandBeschreibung = new JTextField(10);
	
	private JLabel LabelEingabeGegenstandWert = new JLabel("Preis eingeben");
	private JTextField EingabeGegenstandWert = new JTextField(10);
	
	private JLabel LabelEingabeGegenstandGewicht = new JLabel("Gewicht eingeben");
	private JTextField EingabeGegenstandGewicht = new JTextField(10);
	
	private JLabel LabelEingabeGegenstandVolumen = new JLabel("Volumen eingeben");
	private JTextField EingabeGegenstandVolumen = new JTextField(10);
	
	private JLabel LabelEingabeGegenStandKategorie = new JLabel("Kategorie auswählen");
	private JComboBox EingabeGegenstandKategorie = new JComboBox(Stammdaten.KATEGORIE);
	
	private JLabel LabelEingabeGegenstandRaum = new JLabel("Raum auswählen");
	private JComboBox EingabeGegenstandRaum = new JComboBox(Stammdaten.RAEUME);
	
	private JLabel LabelEingabeGegenstandZerbrechlich = new JLabel("Zerbrechlich Ja/Nein");
	private JComboBox EingabeGegenstandZerbrechlich = new JComboBox(Stammdaten.ZERBRECHLICH);
	
	private JLabel LabelEingabeGegenstandAnmerkung = new JLabel("Anmerkungen eigeben");
	private TextArea EingabeGegenstandAnmerkung = new TextArea("",10,5,TextArea.SCROLLBARS_VERTICAL_ONLY);
	
	private JButton EingabeBestätigen = new JButton("Bestätigen");
	private JButton EingabeAbbrechen = new JButton ("Abbrechen");
	
	private JFrame bearbeitungFenster = new JFrame();
	
		public void GegenstaendeFrameMenuBearbeiten()
	{
			bearbeitungFenster.setSize(300, 700);
			bearbeitungFenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			bearbeitungFenster.setLocation(30,30);
			bearbeitungFenster.setVisible(true);
	}
		public void GegenstandBearbeitenBox()
		{
			Box gegenstandBearbeitenBox = Box.createVerticalBox();
			
			gegenstandBearbeitenBox.add(LabelEingabeGegenstandBeschreibung);
			gegenstandBearbeitenBox.add(EingabeGegenstandBeschreibung);
			gegenstandBearbeitenBox.add(Box.createVerticalStrut(5));
			
			gegenstandBearbeitenBox.add(LabelEingabeGegenstandWert);
			gegenstandBearbeitenBox.add(EingabeGegenstandWert);
			gegenstandBearbeitenBox.add(Box.createVerticalStrut(5));
			
			gegenstandBearbeitenBox.add(LabelEingabeGegenstandGewicht);
			gegenstandBearbeitenBox.add(EingabeGegenstandGewicht);
			gegenstandBearbeitenBox.add(Box.createVerticalStrut(5));
			
			gegenstandBearbeitenBox.add(LabelEingabeGegenstandVolumen);
			gegenstandBearbeitenBox.add(EingabeGegenstandVolumen);
			gegenstandBearbeitenBox.add(Box.createVerticalStrut(5));
			
			gegenstandBearbeitenBox.add(LabelEingabeGegenStandKategorie);
			gegenstandBearbeitenBox.add(EingabeGegenstandKategorie);
			
			gegenstandBearbeitenBox.add(LabelEingabeGegenstandRaum);
			gegenstandBearbeitenBox.add(EingabeGegenstandRaum);
			gegenstandBearbeitenBox.add(Box.createVerticalStrut(5));
			
			gegenstandBearbeitenBox.add(LabelEingabeGegenstandZerbrechlich);
			gegenstandBearbeitenBox.add(EingabeGegenstandZerbrechlich);
			gegenstandBearbeitenBox.add(Box.createVerticalStrut(10));
			
			gegenstandBearbeitenBox.add(LabelEingabeGegenstandAnmerkung);
			gegenstandBearbeitenBox.add(EingabeGegenstandAnmerkung);
			
			JPanel panelGegenstandBearbeiten = new JPanel(new BorderLayout());
			
			panelGegenstandBearbeiten.setLayout(new FlowLayout(FlowLayout.CENTER));
			panelGegenstandBearbeiten.setBorder(new TitledBorder(new EtchedBorder(),"Gegenstand bearbeiten"));
			
			panelGegenstandBearbeiten.add(gegenstandBearbeitenBox, BorderLayout.NORTH);
			
			
			
			Box top = Box.createHorizontalBox();
			
			top.add(Box.createHorizontalStrut(0));
			top.add(panelGegenstandBearbeiten);
			
			
			
			Container inhalt = bearbeitungFenster.getContentPane();
			BoxLayout box = new BoxLayout(inhalt, BoxLayout.X_AXIS);
			
			inhalt.setLayout(box);
			inhalt.add(top);
			

		}
		public void GegenstandBearbeitenBestaetigenBox()
		{
Box gegenstandBearbeitenButtonBox = Box.createVerticalBox();
			
		
			
			gegenstandBearbeitenButtonBox.add(EingabeBestätigen);
			EingabeBestätigen.setActionCommand("bestaetigen");
			EingabeBestätigen.addActionListener(new GegenstandHandler());
			gegenstandBearbeitenButtonBox.add(Box.createVerticalStrut(10));
			
			gegenstandBearbeitenButtonBox.add(EingabeAbbrechen);
			
			JPanel panelGegenstandBearbeitenButton = new JPanel(new BorderLayout());
			
			panelGegenstandBearbeitenButton.setLayout(new FlowLayout(FlowLayout.LEFT));
			panelGegenstandBearbeitenButton.setBorder(new TitledBorder(new EtchedBorder(),"Bestätigen oder Abrrechen"));
			
			panelGegenstandBearbeitenButton.add(gegenstandBearbeitenButtonBox, BorderLayout.EAST);
			
			
			
			Box topButtonBox = Box.createHorizontalBox();
			
			topButtonBox.add(Box.createHorizontalStrut(0));
			topButtonBox.add(panelGegenstandBearbeitenButton);
			
			
			
			Container inhaltButton = bearbeitungFenster.getContentPane();
			
			BoxLayout boxButton = new BoxLayout(inhaltButton, BoxLayout.Y_AXIS);
			
			inhaltButton.setLayout(boxButton);
			inhaltButton.add(topButtonBox);
		}

		private void initFromModel () 
		{
			EingabeGegenstandBeschreibung.setText (model.getBeschreibung());
		}	
		private void updateModel ()
		{
			model.setBeschreibung (EingabeGegenstandBeschreibung.getText());
		}	
	
		public GegenstandInfoDialog()
		{
			GegenstandBearbeitenBox();
			GegenstaendeFrameMenuBearbeiten();
			GegenstandBearbeitenBestaetigenBox();
			[B]initFromModel();
			updateModel();[/B]		
}
		
		
		
}
initFromModel() und updateModel sind die Methoden in der die Werte eigentlich übergeben werden sollen, toll aber sie sollen durch eine ActionListenerKlasse abgerufen werden damit ich die neuen Werte (zB.:EingabeGegenstandBeschreibung) speichern kann.

Das hier ist die halbfertige ActionListerner Klasse:
Java:
package gruppe03.mvc.gui;

import gruppe03.mvc.model.*;
import gruppe03.mvc.gui.*;

import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.JOptionPane;




public class GegenstandHandler implements ActionListener
{
	
		
	
	
	
	public void GegenstandHandler()
	{
		GegenstandInfoDialog g = new GegenstandInfoDialog();
	}
		
	public void actionPerformed(ActionEvent e)
		
		{
		if("bearbeiten"==e.getActionCommand())
		{
			GegenstandInfoDialog dlg = new GegenstandInfoDialog();
			dlg.dispose();
		}
		if("hinzufuegen"==e.getActionCommand())
		{
			System.out.print("yeah");
		}
		if("Gegenstand bearbeiten"==e.getActionCommand())
		{
			GegenstandInfoDialog dlg = new GegenstandInfoDialog();
			dlg.dispose();
		}
		if ("bestaetigen"==e.getActionCommand()) 
		{
			 
		}
	
		
	}

	
}
Bei bestaetigen soll das Event eigentlich passieren,..hmm wisst ihr eine Lösung?:bahnhof:
 
Zuletzt bearbeitet von einem Moderator:
Strings nie mit == vergleichen sondern mit equals,

schau dir doch an, was da an e.getActionCommand() kommt, und welches if betreten wird
 
Strings nie mit == vergleichen sondern mit equals,

schau dir doch an, was da an e.getActionCommand() kommt, und welches if betreten wird

Hmm ja darin besteht nicht das Problem. die übrigens Actionlisterners funktionieren sehr gut. Nur eben der letzt nicht. an "==" scheitert es nicht. Dem Knopf wird eindeutig die Funktion zugewiesen jedoch die Funktion selber lässt sich nicht definieren wie sie soll...
Son scheiß ey...hmm
Man müsste irgendwie auf die Methode GegenstandInfoDialog() zugreifen. wenn das geht is alles perfekt^^
 
> Dem Knopf wird eindeutig die Funktion zugewiesen
poste doch diese Stelle, generell ist das alles schwer anzuzweifeln,

der String "Gegenstand bearbeiten" taucht im geposteten Code nur als Border-Text auf..,
ganz einfach ist auch
> System.out.println(e.getActionCommand())
zu Beginn des Listeners
 
Ich setze mal alle Klassen rein die ich dazu geschrieben habe. Die Zusammenhänge sind wirklich schwer zu erkennen, ich gebe es zu...:-D

package gruppe03.mvc.gui;

import gruppe03.mvc.model.GegenstandInfo;

import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Collection;
import java.util.Iterator;

import javax.swing.*;
import javax.swing.border.BevelBorder;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;




public class GegenstaendeFrame extends JFrame {


private JMenuBar menuBar = new JMenuBar();

private JMenu menuDatei = new JMenu("Datei");
private JMenu menuBearbeiten = new JMenu("Bearbeiten");
private JMenu menuHilfe = new JMenu("?");

private JMenuItem menuDateiNeu = new JMenuItem("Neu");
private JMenuItem menuDateiOeffnen = new JMenuItem("Oeffnen");
private JMenuItem menuDateiSpeichern = new JMenuItem("Speichern");
private JMenuItem menuDateiBeenden = new JMenuItem("Beenden");

private JMenuItem menuBearbeitenBearbeiten = new JMenuItem("Gegenstand bearbeiten");
private JMenuItem menuBearbeitenHinzufuegen = new JMenuItem ("neuer Gegentstand");
private JMenuItem menuBearbeitenLoeschen = new JMenuItem("Gegenstand loeschen");

private JMenuItem menuHilfeWillkommen = new JMenuItem("Willkommen");
private JMenuItem menuHilfeKontakt = new JMenuItem("Kontakt");
private JMenuItem menuHilfeHilfe = new JMenuItem("Hilfe");

private JFileChooser fc = new JFileChooser();


// Hier werden alle Label und die dazugehoerigen Textfields implementiert

private JTextField beschreibungField = new JTextField(10);
private JLabel beschreibungLabel = new JLabel("Beschreibung");

private JLabel kategorieLabel = new JLabel("Kategorie");
private JTextField kategorieField = new JTextField(10);

private JLabel raumLabel = new JLabel("Raum");
private JTextField raumField = new JTextField(10);

private JLabel wertLabel = new JLabel("Wert in Euro");
private JTextField wertField = new JTextField(10);

private JLabel gewichtLabel = new JLabel ("Gewicht in kg");
private JTextField gewichtField = new JTextField(10);

private JLabel volumenLabel = new JLabel("Volumen");
private JTextField volumenField = new JTextField(10);

private JLabel zerbrechlichLabel = new JLabel("Zerbrechlich");
private JTextField zerbrechlichField = new JTextField(10);

private JLabel anmerkungLabel = new JLabel ("Anmerkung");
private TextArea anmerkungArea = new TextArea("keine Anmerkung", 5,1,TextArea.SCROLLBARS_VERTICAL_ONLY);

private JLabel gesamtLabel = new JLabel("Anzahl Gegenstaende");
private JTextField gesamtField = new JTextField (10);

private JLabel wertAllerLabel = new JLabel ("Gesamt Wert in Euro");
private JTextField wertAllerField = new JTextField(10);

private JLabel durchGewichtLabel = new JLabel ("Durchschnittliches Gewicht");
private JTextField durchGewichtField = new JTextField (10);

private JLabel suchLabel = new JLabel("Suchwort eingeben: ");
private JTextField suchField = new JTextField (10);

private GUIListe liste = new GUIListe();


//Buttons Gegenstaende Verwalten

private JButton hinzufuegen = new JButton("hinzufuegen");
private JButton bearbeiten = new JButton ("bearbeiten");
private JButton loeschen = new JButton ("loeschen");



// Hauptfenster
private JFrame hauptFenster = new JFrame ("Hausratsverwaltung");

public void GegenstaendeFrameMenu()
{

hauptFenster.setSize(800,600);
hauptFenster.setLocation(300,100);
hauptFenster.setDefaultCloseOperation(EXIT_ON_CLOSE);
hauptFenster.setVisible(true);
hauptFenster.setJMenuBar(menuBar);

menuBar.add(menuDatei);
menuBar.add(menuBearbeiten);
menuBar.add(menuHilfe);

//Hier wird auf die Klasse GegenstandHandler zugegriffen


menuDatei.add(menuDateiNeu);
menuDatei.add(menuDateiOeffnen);
menuDatei.add(menuDateiSpeichern);
menuDatei.add(menuDateiBeenden);

menuBearbeiten.add(menuBearbeitenBearbeiten);
menuBearbeitenBearbeiten.setActionCommand("Gegenstand bearbeiten");
menuBearbeitenBearbeiten.addActionListener(new GegenstandHandler());

menuBearbeiten.add(menuBearbeitenHinzufuegen);
menuBearbeiten.add(menuBearbeitenLoeschen);


menuHilfe.add(menuHilfeHilfe);
menuHilfe.add(menuHilfeWillkommen);
menuHilfe.add(menuHilfeKontakt);






}

public void GegenstandInfo()
{
Box gegenstand = Box.createVerticalBox();
gegenstand.add(Box.createVerticalStrut(0));
gegenstand.add(Box.createGlue());

gegenstand.add(beschreibungLabel);
gegenstand.add(beschreibungField);
beschreibungField.setEditable(false);

gegenstand.add(kategorieLabel);
gegenstand.add(kategorieField);
kategorieField.setEditable(false);

gegenstand.add(raumLabel);
gegenstand.add(raumField);
raumField.setEditable(false);

gegenstand.add(wertLabel);
gegenstand.add(wertField);
wertField.setEditable(false);

gegenstand.add(gewichtLabel);
gegenstand.add(gewichtField);
gewichtField.setEditable(false);

gegenstand.add(volumenLabel);
gegenstand.add(volumenField);
volumenField.setEditable(false);

gegenstand.add(zerbrechlichLabel);
gegenstand.add(zerbrechlichField);
zerbrechlichField.setEditable(false);

gegenstand.add(anmerkungLabel);
gegenstand.add(anmerkungArea);
anmerkungArea.setEditable(false);


JPanel panelGegenstand = new JPanel(new BorderLayout());

panelGegenstand.setLayout(new FlowLayout(FlowLayout.LEFT));

panelGegenstand.setBorder(new TitledBorder(
new EtchedBorder(),
"GegenstandInfo"));
panelGegenstand.add(gegenstand, BorderLayout.CENTER);





//Box Gegenstandsliste

Box gegenstandsListe = Box.createVerticalBox();
gegenstandsListe.add(liste);

JPanel panelGegenstandsListe = new JPanel(new BorderLayout());
panelGegenstandsListe.setBorder(new TitledBorder(
new EtchedBorder(),
"GegenstandsListe"));

//panelGegenstandsListe.setLayout (new FlowLayout(FlowLayout.LEFT));
panelGegenstandsListe.add(gegenstandsListe, BorderLayout.CENTER);



//Box Gegenstaende verwalten

Box gegenstaendeVerwalten = Box.createVerticalBox();

gegenstaendeVerwalten.add(bearbeiten);
gegenstaendeVerwalten.add(hinzufuegen);
gegenstaendeVerwalten.add(loeschen);

bearbeiten.setActionCommand("bearbeiten");
bearbeiten.addActionListener(new GegenstandHandler());

hinzufuegen.setActionCommand("hinzufuegen");
hinzufuegen.addActionListener(new GegenstandHandler());

JPanel panelVerwalten = new JPanel(new BorderLayout());
panelVerwalten.setBorder(new TitledBorder(
new EtchedBorder(),
"GegenstandVerwalten"));
panelVerwalten.setLayout(new FlowLayout(FlowLayout.CENTER));
panelVerwalten.add(gegenstaendeVerwalten, BorderLayout.CENTER);



//Ubersicht Anzahlgegenstaende, Wert und durchschnittsgewicht aller Gegenstaende


Box uebersichtGegenstaende = Box.createVerticalBox();

uebersichtGegenstaende.add(gesamtLabel);
uebersichtGegenstaende.add(gesamtField);

uebersichtGegenstaende.add(wertAllerLabel);
uebersichtGegenstaende.add(wertAllerField);

uebersichtGegenstaende.add(durchGewichtLabel);
uebersichtGegenstaende.add(durchGewichtField);

JPanel panelUebersicht = new JPanel(new BorderLayout());
panelUebersicht.setBorder(new TitledBorder(
new EtchedBorder(),
"HausratInfo"));
panelUebersicht.setLayout(new FlowLayout(FlowLayout.CENTER));
panelUebersicht.add(uebersichtGegenstaende, BorderLayout.CENTER);

//Suchfunktion

Box suchGegenstand = Box.createVerticalBox();
suchGegenstand.add(suchLabel);
suchGegenstand.add(suchField);

JPanel panelSuche = new JPanel(new BorderLayout());
panelSuche.setBorder(new TitledBorder(
new EtchedBorder(),
"GegenstandSuchen"));

panelSuche.setLayout(new FlowLayout(FlowLayout.LEFT));
panelSuche.add(suchGegenstand, BorderLayout.CENTER);

// LOGOG

Box logoBox = Box.createVerticalBox();


JPanel panelLogo = new JPanel(new BorderLayout());
panelLogo.setBorder(new TitledBorder(
new EtchedBorder(),
"Logo"));

panelLogo.setLayout(new FlowLayout(FlowLayout.LEFT));
panelLogo.add(logoBox, BorderLayout.CENTER);



Container inhalt = hauptFenster.getContentPane();
BoxLayout box = new BoxLayout(inhalt, BoxLayout.Y_AXIS);

Box top = Box.createHorizontalBox();
top.add(Box.createHorizontalStrut(0));
top.add(panelGegenstand);
top.add(panelGegenstandsListe);
top.add(panelVerwalten);

Box down = Box.createHorizontalBox();
down.add(panelUebersicht);
down.add(panelSuche);
down.add(panelLogo);




inhalt.setLayout(box);
inhalt.add(top);
inhalt.add(down);
hauptFenster.pack();

}

public GegenstaendeFrame()
{

GegenstaendeFrameMenu();
GegenstandInfo();

}


}

DANN:
package gruppe03.mvc.gui;

import gruppe03.mvc.model.*;
import gruppe03.mvc.gui.*;

import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.JOptionPane;




public class GegenstandHandler implements ActionListener
{





public void GegenstandHandler()
{
GegenstandInfoDialog g = new GegenstandInfoDialog();
}

public void actionPerformed(ActionEvent e)

{
if("bearbeiten"==e.getActionCommand())
{
GegenstandInfoDialog dlg = new GegenstandInfoDialog();
dlg.dispose();
}
if("hinzufuegen"==e.getActionCommand())
{
System.out.print("yeah");
}
if("Gegenstand bearbeiten"==e.getActionCommand())
{
GegenstandInfoDialog dlg = new GegenstandInfoDialog();
dlg.dispose();
}
if ("bestaetigen"==e.getActionCommand())
{

}


}



}







DANN:
package gruppe03.mvc.gui;

import gruppe03.mvc.model.GegenstandInfo;
import gruppe03.mvc.model.Stammdaten;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.LayoutManager;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;

import gruppe03.mvc.model.GegenstandInfo;



public class GegenstandInfoDialog extends JFrame
{

private GegenstandInfo model;
private JLabel LabelEingabeGegenstandBeschreibung = new JLabel ("Beschreibung eingeben");
private JTextField EingabeGegenstandBeschreibung = new JTextField(10);

private JLabel LabelEingabeGegenstandWert = new JLabel("Preis eingeben");
private JTextField EingabeGegenstandWert = new JTextField(10);

private JLabel LabelEingabeGegenstandGewicht = new JLabel("Gewicht eingeben");
private JTextField EingabeGegenstandGewicht = new JTextField(10);

private JLabel LabelEingabeGegenstandVolumen = new JLabel("Volumen eingeben");
private JTextField EingabeGegenstandVolumen = new JTextField(10);

private JLabel LabelEingabeGegenStandKategorie = new JLabel("Kategorie auswählen");
private JComboBox EingabeGegenstandKategorie = new JComboBox(Stammdaten.KATEGORIE);

private JLabel LabelEingabeGegenstandRaum = new JLabel("Raum auswählen");
private JComboBox EingabeGegenstandRaum = new JComboBox(Stammdaten.RAEUME);

private JLabel LabelEingabeGegenstandZerbrechlich = new JLabel("Zerbrechlich Ja/Nein");
private JComboBox EingabeGegenstandZerbrechlich = new JComboBox(Stammdaten.ZERBRECHLICH);

private JLabel LabelEingabeGegenstandAnmerkung = new JLabel("Anmerkungen eigeben");
private TextArea EingabeGegenstandAnmerkung = new TextArea("",10,5,TextArea.SCROLLBARS_VERTICAL_ONLY);

private JButton EingabeBestätigen = new JButton("Bestätigen");
private JButton EingabeAbbrechen = new JButton ("Abbrechen");

private JFrame bearbeitungFenster = new JFrame();

public void GegenstaendeFrameMenuBearbeiten()
{
bearbeitungFenster.setSize(300, 700);
bearbeitungFenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
bearbeitungFenster.setLocation(30,30);
bearbeitungFenster.setVisible(true);
}
public void GegenstandBearbeitenBox()
{
Box gegenstandBearbeitenBox = Box.createVerticalBox();

gegenstandBearbeitenBox.add(LabelEingabeGegenstandBeschreibung);
gegenstandBearbeitenBox.add(EingabeGegenstandBeschreibung);
gegenstandBearbeitenBox.add(Box.createVerticalStrut(5));

gegenstandBearbeitenBox.add(LabelEingabeGegenstandWert);
gegenstandBearbeitenBox.add(EingabeGegenstandWert);
gegenstandBearbeitenBox.add(Box.createVerticalStrut(5));

gegenstandBearbeitenBox.add(LabelEingabeGegenstandGewicht);
gegenstandBearbeitenBox.add(EingabeGegenstandGewicht);
gegenstandBearbeitenBox.add(Box.createVerticalStrut(5));

gegenstandBearbeitenBox.add(LabelEingabeGegenstandVolumen);
gegenstandBearbeitenBox.add(EingabeGegenstandVolumen);
gegenstandBearbeitenBox.add(Box.createVerticalStrut(5));

gegenstandBearbeitenBox.add(LabelEingabeGegenStandKategorie);
gegenstandBearbeitenBox.add(EingabeGegenstandKategorie);

gegenstandBearbeitenBox.add(LabelEingabeGegenstandRaum);
gegenstandBearbeitenBox.add(EingabeGegenstandRaum);
gegenstandBearbeitenBox.add(Box.createVerticalStrut(5));

gegenstandBearbeitenBox.add(LabelEingabeGegenstandZerbrechlich);
gegenstandBearbeitenBox.add(EingabeGegenstandZerbrechlich);
gegenstandBearbeitenBox.add(Box.createVerticalStrut(10));

gegenstandBearbeitenBox.add(LabelEingabeGegenstandAnmerkung);
gegenstandBearbeitenBox.add(EingabeGegenstandAnmerkung);

JPanel panelGegenstandBearbeiten = new JPanel(new BorderLayout());

panelGegenstandBearbeiten.setLayout(new FlowLayout(FlowLayout.CENTER));
panelGegenstandBearbeiten.setBorder(new TitledBorder(new EtchedBorder(),"Gegenstand bearbeiten"));

panelGegenstandBearbeiten.add(gegenstandBearbeitenBox, BorderLayout.NORTH);



Box top = Box.createHorizontalBox();

top.add(Box.createHorizontalStrut(0));
top.add(panelGegenstandBearbeiten);



Container inhalt = bearbeitungFenster.getContentPane();
BoxLayout box = new BoxLayout(inhalt, BoxLayout.X_AXIS);

inhalt.setLayout(box);
inhalt.add(top);


}
public void GegenstandBearbeitenBestaetigenBox()
{
Box gegenstandBearbeitenButtonBox = Box.createVerticalBox();



gegenstandBearbeitenButtonBox.add(EingabeBestätigen);
//EingabeBestätigen.setActionCommand("bestaetigen");
EingabeBestätigen.addActionListener(new GegenstandHandler());
gegenstandBearbeitenButtonBox.add(Box.createVerticalStrut(10));

gegenstandBearbeitenButtonBox.add(EingabeAbbrechen);

JPanel panelGegenstandBearbeitenButton = new JPanel(new BorderLayout());

panelGegenstandBearbeitenButton.setLayout(new FlowLayout(FlowLayout.LEFT));
panelGegenstandBearbeitenButton.setBorder(new TitledBorder(new EtchedBorder(),"Bestätigen oder Abrrechen"));

panelGegenstandBearbeitenButton.add(gegenstandBearbeitenButtonBox, BorderLayout.EAST);



Box topButtonBox = Box.createHorizontalBox();

topButtonBox.add(Box.createHorizontalStrut(0));
topButtonBox.add(panelGegenstandBearbeitenButton);



Container inhaltButton = bearbeitungFenster.getContentPane();

BoxLayout boxButton = new BoxLayout(inhaltButton, BoxLayout.Y_AXIS);

inhaltButton.setLayout(boxButton);
inhaltButton.add(topButtonBox);
}

private void initFromModel ()
{
EingabeGegenstandBeschreibung.setText (model.getBeschreibung());
}
private void updateModel ()
{
model.setBeschreibung (EingabeGegenstandBeschreibung.getText());


}

public GegenstandInfoDialog()
{
GegenstandBearbeitenBox();
GegenstaendeFrameMenuBearbeiten();
GegenstandBearbeitenBestaetigenBox();
initFromModel();
updateModel();
}



}


package gruppe03.mvc.gui;

import gruppe03.mvc.model.*;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.File;
import java.util.Collection;
import java.util.Iterator;

import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.UIManager;
import java.util.Collection;
import java.util.Iterator;

import javax.swing.DefaultListModel;
import javax.swing.JList;


public class GUIListe extends JList {
private DefaultListModel swingListModel = new DefaultListModel();

public void setElements (Collection gegenstandListe) {
swingListModel.removeAllElements();
Iterator iter = gegenstandListe.iterator();
while (iter.hasNext()) {
GegenstandInfo g = (GegenstandInfo)iter.next();
swingListModel.addElement (g.getDisplayString());
}
}

public GUIListe () {
setModel (swingListModel);
}
}



DANN:
package gruppe03.mvc.model;
import java.util.*;


public class Gegenstaende {


ArrayList gegenstandListe = new ArrayList();


// Mit dieser Methode kann ein neuer Gegenstand in die Arrayliste hinzugefuegt werden
public void addGegenstand(GegenstandInfo g)
{
gegenstandListe.add(g);
}


// Mit dieser Methode koennen Gegenstande anhand eines Indexes aus der Arryliste erreicht werden
public GegenstandInfo getGegenstandInfo(int index){

return (GegenstandInfo)gegenstandListe.get(index);
}

// Mit dieser Methode wird die Anzahl aller Gegenstaende ausgegeben.
public int getAnzahlGegenstaende()
{

return gegenstandListe.size();
}

//Diese Methode loescht einen Gegentand aus der Arrayliste.
public void deleteGegenstand(int index)
{

gegenstandListe.remove(index);

}

public boolean searchGegenstand(){
return false;

}

public void sortGegenstandListe()
{
Collections.sort(gegenstandListe);
}

public double valueGegenstaende(){

Iterator iterator = gegenstandListe.iterator();
int i = 0;
double value = 0;
while(iterator.hasNext())
{
GegenstandInfo g = (GegenstandInfo)iterator.next();


value = value + g.getWert();

}

return value;
}


public Collection getGegenstaende() {

return gegenstandListe;
}
}
DANN NOCH:
package gruppe03.mvc.model;

import java.util.*;
import java.io.*;

import gruppe03.mvc.model.GegenstandInfo;

public class GegenstaendeDAO {


private Gegenstaende gegenstaende;

public GegenstaendeDAO (Gegenstaende liste){

gegenstaende = liste;
}

public void inDateiSchreiben(String dateiname)
throws FileNotFoundException, IOException
{
FileOutputStream fos = new FileOutputStream (dateiname);
DataOutputStream out = new DataOutputStream(fos);

//Anzahl der Gegenstaende speichern
out.writeInt(gegenstaende.getAnzahlGegenstaende());

//Alle Gegenstaende nacheinander speichern
GegenstandInfoDAO dao = new GegenstandInfoDAO(null);
Iterator iterator = gegenstaende.gegenstandListe.iterator();

while(iterator.hasNext())
{
GegenstandInfo g = (GegenstandInfo)iterator.next();
dao.setGegenstandInfo(g);
dao.writeToStream(out);

}
out.close();

}

public void ausDateiLesen(String dateiname)
throws FileNotFoundException, IOException
{

FileInputStream fis = new FileInputStream(dateiname);
DataInputStream in = new DataInputStream(fis);

//Anzahl Gegenstaende lese
int anzahlGegenstaende = in.readInt();

// Alle Gegenstaende nacheinander lese

GegenstandInfoDAO dao = new GegenstandInfoDAO(null);
for (int i=0; i<anzahlGegenstaende; ++i) {
GegenstandInfo g = new GegenstandInfo(); // neues GegenstandInfo-Objekt
dao.setGegenstandInfo (g); // DAO initialisieren
dao.readFromStream (in); // Objektzustand r�cklesen
gegenstaende.addGegenstand (g); // zur Liste hinzuf�gen
}
in.close(); // Schlie�t ebenfalls den FileInputStream!
}
}






DANN:
package gruppe03.mvc.model;

public class GegenstandInfo implements Comparable {


private String beschreibung;
private int raum;
private int zerbrechlich;
private int kategorie;

private double wert;
private double volumen;
private double gewicht;
private String anmerkung;


//
public String getDisplayString(){

return beschreibung +", " + raum;


}

public int compareTo(Object o){

GegenstandInfo g = (GegenstandInfo)o;
if(raum < g.raum)
{
return -1;
}
else if(raum > g.raum)
{
return 1;
}
else return 0;
}

public void setAnmerkung(String anmerkung){
this.anmerkung = anmerkung;
}

public String getAnmerkung(){

return anmerkung;
}


public void setBeschreibung(String beschreibung)
{
this.beschreibung = beschreibung;
}

public String getBeschreibung(){

return beschreibung;
}

public void setRaum(int raum)
{
this.raum = raum;
}

public int getRaum(){
return raum;

}

public void setZerbrechlich(int zerbrechlich){

this.zerbrechlich = zerbrechlich;
}

public int getZerbrechlich(){
return zerbrechlich;
}

public void setKategorie(int kategorie){
this.kategorie = kategorie;

}

public int getKategorie(){
return kategorie;
}


public void setWert(double wert){
this.wert = wert;

}

public double getWert(){
return wert;
}

public void setVolumen(double volumen){
this.volumen = volumen;
}

public double getVolumen(){
return volumen;
}

public void setGewicht(double gewicht){
this.gewicht = gewicht;
}

public double getGewicht(){
return gewicht;
}

}
DANN:
package gruppe03.mvc.model;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;

public class GegenstandInfoDAO {

private GegenstandInfo gegenstandInfo;

public GegenstandInfoDAO(GegenstandInfo ginfo){

gegenstandInfo = ginfo;

}

public void setGegenstandInfo(GegenstandInfo ginfo){

gegenstandInfo = ginfo;
}

public void writeToStream(DataOutputStream out)
throws IOException
{
out.writeUTF (gegenstandInfo.getBeschreibung());
out.writeInt (gegenstandInfo.getRaum());
out.writeInt (gegenstandInfo.getKategorie());
out.writeDouble (gegenstandInfo.getWert());
out.writeDouble (gegenstandInfo.getVolumen());
out.writeDouble (gegenstandInfo.getGewicht());
out.writeInt (gegenstandInfo.getZerbrechlich());
out.writeUTF (gegenstandInfo.getAnmerkung());

}

public void readFromStream(DataInputStream in)
throws IOException
{

gegenstandInfo.setBeschreibung(in.readUTF());
gegenstandInfo.setRaum(in.readInt());
gegenstandInfo.setKategorie(in.readInt());
gegenstandInfo.setWert(in.readDouble());
gegenstandInfo.setVolumen(in.readDouble());
gegenstandInfo.setZerbrechlich(in.readInt());
gegenstandInfo.setAnmerkung(in.readUTF());
}


}
DANN:
package gruppe03.mvc.model;


public class Stammdaten {

//Dieses String gibt an, in welchen Raum der Gegenstand sich befindet.
public static final String RAEUME[]={

"Kueche",
"Wohnzimmer",
"Schlafzimmer",
"Badezimmer",
"Arbeitszimmer",
"Kinderzimmer",
"Diele",
"Speicher",
"Garage",
"Sonstiger Raum"


};

// Dieses String Array bietet die Moeglichkeit einen Gegenstand als
// zerbrechlich oder nicht zerbrechlich zu deklarieren.

public static final String ZERBRECHLICH[]={

"Ja",
"Nein"


};

public static final String KATEGORIE[] ={

"Elektronik",
"Moebel",
"Waesche",
"Geschirr",
"Werkzeug",
"Reinigungsmittel",
"Hobby",
"Textilien",
"Dekoration",
"Spielzeug",
"Amaturen",
"Buecher"


};



}
Ich hoffe nun kannst du die Zusammenhänge besser erkennen🙂
Bei Bedarf ruhig mal ausprobieren...
 
von Java-Tags hältst du immer noch nichts?
bis du das gelernt hast mein letztes Posting, aber jetzt eh Schlafenszeit,

also nachdem ich das minutenlang kopiert und zurechtgekürzt und ne fehlende main-Methode ergänzt habe, lief es sofort,
Menü-Eintrag geht, bearbeiten-Button auch, wenn bei dir nicht, empfehle ich dringend auf equals umzusteigen und endlich mit System.out.println() nachzuschauen was los ist,

es gibt übrigens ne NullPointerException in
Java:
private void initFromModel() {
		EingabeGegenstandBeschreibung.setText(model.getBeschreibung());
	}
weil model null ist


hier ein vollständiges Programm kopiergerecht gepostet:
Klasse Test erstellen, alles markieren, einfügen, Imports updaten, Run, läuft
Java:
public class Test {

	public static void main(String[] args) {
		new GegenstaendeFrame();
	}
}

class GegenstaendeFrame extends JFrame {

	private JMenuBar menuBar = new JMenuBar();

	private JMenu menuDatei = new JMenu("Datei");
	private JMenu menuBearbeiten = new JMenu("Bearbeiten");
	private JMenu menuHilfe = new JMenu("?");

	private JMenuItem menuDateiNeu = new JMenuItem("Neu");
	private JMenuItem menuDateiOeffnen = new JMenuItem("Oeffnen");
	private JMenuItem menuDateiSpeichern = new JMenuItem("Speichern");
	private JMenuItem menuDateiBeenden = new JMenuItem("Beenden");

	private JMenuItem menuBearbeitenBearbeiten = new JMenuItem(
			"Gegenstand bearbeiten");
	private JMenuItem menuBearbeitenHinzufuegen = new JMenuItem(
			"neuer Gegentstand");
	private JMenuItem menuBearbeitenLoeschen = new JMenuItem(
			"Gegenstand loeschen");

	private JMenuItem menuHilfeWillkommen = new JMenuItem("Willkommen");
	private JMenuItem menuHilfeKontakt = new JMenuItem("Kontakt");
	private JMenuItem menuHilfeHilfe = new JMenuItem("Hilfe");

	private JFileChooser fc = new JFileChooser();

	// Hier werden alle Label und die dazugehoerigen Textfields implementiert

	private JTextField beschreibungField = new JTextField(10);
	private JLabel beschreibungLabel = new JLabel("Beschreibung");

	private JLabel kategorieLabel = new JLabel("Kategorie");
	private JTextField kategorieField = new JTextField(10);

	private JLabel raumLabel = new JLabel("Raum");
	private JTextField raumField = new JTextField(10);

	private JLabel wertLabel = new JLabel("Wert in Euro");
	private JTextField wertField = new JTextField(10);

	private JLabel gewichtLabel = new JLabel("Gewicht in kg");
	private JTextField gewichtField = new JTextField(10);

	private JLabel volumenLabel = new JLabel("Volumen");
	private JTextField volumenField = new JTextField(10);

	private JLabel zerbrechlichLabel = new JLabel("Zerbrechlich");
	private JTextField zerbrechlichField = new JTextField(10);

	private JLabel anmerkungLabel = new JLabel("Anmerkung");
	private TextArea anmerkungArea = new TextArea("keine Anmerkung", 5, 1,
			TextArea.SCROLLBARS_VERTICAL_ONLY);

	private JLabel gesamtLabel = new JLabel("Anzahl Gegenstaende");
	private JTextField gesamtField = new JTextField(10);

	private JLabel wertAllerLabel = new JLabel("Gesamt Wert in Euro");
	private JTextField wertAllerField = new JTextField(10);

	private JLabel durchGewichtLabel = new JLabel("Durchschnittliches Gewicht");
	private JTextField durchGewichtField = new JTextField(10);

	private JLabel suchLabel = new JLabel("Suchwort eingeben: ");
	private JTextField suchField = new JTextField(10);

	private GUIListe liste = new GUIListe();

	// Buttons Gegenstaende Verwalten

	private JButton hinzufuegen = new JButton("hinzufuegen");
	private JButton bearbeiten = new JButton("bearbeiten");
	private JButton loeschen = new JButton("loeschen");

	// Hauptfenster
	private JFrame hauptFenster = new JFrame("Hausratsverwaltung");

	public void GegenstaendeFrameMenu() {

		hauptFenster.setSize(800, 600);
		hauptFenster.setLocation(300, 100);
		hauptFenster.setDefaultCloseOperation(EXIT_ON_CLOSE);
		hauptFenster.setVisible(true);
		hauptFenster.setJMenuBar(menuBar);

		menuBar.add(menuDatei);
		menuBar.add(menuBearbeiten);
		menuBar.add(menuHilfe);

		// Hier wird auf die Klasse GegenstandHandler zugegriffen

		menuDatei.add(menuDateiNeu);
		menuDatei.add(menuDateiOeffnen);
		menuDatei.add(menuDateiSpeichern);
		menuDatei.add(menuDateiBeenden);

		menuBearbeiten.add(menuBearbeitenBearbeiten);
		menuBearbeitenBearbeiten.setActionCommand("Gegenstand bearbeiten");
		menuBearbeitenBearbeiten.addActionListener(new GegenstandHandler());

		menuBearbeiten.add(menuBearbeitenHinzufuegen);
		menuBearbeiten.add(menuBearbeitenLoeschen);

		menuHilfe.add(menuHilfeHilfe);
		menuHilfe.add(menuHilfeWillkommen);
		menuHilfe.add(menuHilfeKontakt);

	}

	public void GegenstandInfo() {
		Box gegenstand = Box.createVerticalBox();
		gegenstand.add(Box.createVerticalStrut(0));
		gegenstand.add(Box.createGlue());

		gegenstand.add(beschreibungLabel);
		gegenstand.add(beschreibungField);
		beschreibungField.setEditable(false);

		gegenstand.add(kategorieLabel);
		gegenstand.add(kategorieField);
		kategorieField.setEditable(false);

		gegenstand.add(raumLabel);
		gegenstand.add(raumField);
		raumField.setEditable(false);

		gegenstand.add(wertLabel);
		gegenstand.add(wertField);
		wertField.setEditable(false);

		gegenstand.add(gewichtLabel);
		gegenstand.add(gewichtField);
		gewichtField.setEditable(false);

		gegenstand.add(volumenLabel);
		gegenstand.add(volumenField);
		volumenField.setEditable(false);

		gegenstand.add(zerbrechlichLabel);
		gegenstand.add(zerbrechlichField);
		zerbrechlichField.setEditable(false);

		gegenstand.add(anmerkungLabel);
		gegenstand.add(anmerkungArea);
		anmerkungArea.setEditable(false);

		JPanel panelGegenstand = new JPanel(new BorderLayout());

		panelGegenstand.setLayout(new FlowLayout(FlowLayout.LEFT));

		panelGegenstand.setBorder(new TitledBorder(new EtchedBorder(),
				"GegenstandInfo"));
		panelGegenstand.add(gegenstand, BorderLayout.CENTER);

		// Box Gegenstandsliste

		Box gegenstandsListe = Box.createVerticalBox();
		gegenstandsListe.add(liste);

		JPanel panelGegenstandsListe = new JPanel(new BorderLayout());
		panelGegenstandsListe.setBorder(new TitledBorder(new EtchedBorder(),
				"GegenstandsListe"));

		// panelGegenstandsListe.setLayout (new FlowLayout(FlowLayout.LEFT));
		panelGegenstandsListe.add(gegenstandsListe, BorderLayout.CENTER);

		// Box Gegenstaende verwalten

		Box gegenstaendeVerwalten = Box.createVerticalBox();

		gegenstaendeVerwalten.add(bearbeiten);
		gegenstaendeVerwalten.add(hinzufuegen);
		gegenstaendeVerwalten.add(loeschen);

		bearbeiten.setActionCommand("bearbeiten");
		bearbeiten.addActionListener(new GegenstandHandler());

		hinzufuegen.setActionCommand("hinzufuegen");
		hinzufuegen.addActionListener(new GegenstandHandler());

		JPanel panelVerwalten = new JPanel(new BorderLayout());
		panelVerwalten.setBorder(new TitledBorder(new EtchedBorder(),
				"GegenstandVerwalten"));
		panelVerwalten.setLayout(new FlowLayout(FlowLayout.CENTER));
		panelVerwalten.add(gegenstaendeVerwalten, BorderLayout.CENTER);

		// Ubersicht Anzahlgegenstaende, Wert und durchschnittsgewicht aller
		// Gegenstaende

		Box uebersichtGegenstaende = Box.createVerticalBox();

		uebersichtGegenstaende.add(gesamtLabel);
		uebersichtGegenstaende.add(gesamtField);

		uebersichtGegenstaende.add(wertAllerLabel);
		uebersichtGegenstaende.add(wertAllerField);

		uebersichtGegenstaende.add(durchGewichtLabel);
		uebersichtGegenstaende.add(durchGewichtField);

		JPanel panelUebersicht = new JPanel(new BorderLayout());
		panelUebersicht.setBorder(new TitledBorder(new EtchedBorder(),
				"HausratInfo"));
		panelUebersicht.setLayout(new FlowLayout(FlowLayout.CENTER));
		panelUebersicht.add(uebersichtGegenstaende, BorderLayout.CENTER);

		// Suchfunktion

		Box suchGegenstand = Box.createVerticalBox();
		suchGegenstand.add(suchLabel);
		suchGegenstand.add(suchField);

		JPanel panelSuche = new JPanel(new BorderLayout());
		panelSuche.setBorder(new TitledBorder(new EtchedBorder(),
				"GegenstandSuchen"));

		panelSuche.setLayout(new FlowLayout(FlowLayout.LEFT));
		panelSuche.add(suchGegenstand, BorderLayout.CENTER);

		// LOGOG

		Box logoBox = Box.createVerticalBox();

		JPanel panelLogo = new JPanel(new BorderLayout());
		panelLogo.setBorder(new TitledBorder(new EtchedBorder(), "Logo"));

		panelLogo.setLayout(new FlowLayout(FlowLayout.LEFT));
		panelLogo.add(logoBox, BorderLayout.CENTER);

		Container inhalt = hauptFenster.getContentPane();
		BoxLayout box = new BoxLayout(inhalt, BoxLayout.Y_AXIS);

		Box top = Box.createHorizontalBox();
		top.add(Box.createHorizontalStrut(0));
		top.add(panelGegenstand);
		top.add(panelGegenstandsListe);
		top.add(panelVerwalten);

		Box down = Box.createHorizontalBox();
		down.add(panelUebersicht);
		down.add(panelSuche);
		down.add(panelLogo);

		inhalt.setLayout(box);
		inhalt.add(top);
		inhalt.add(down);
		hauptFenster.pack();

	}

	public GegenstaendeFrame() {

		GegenstaendeFrameMenu();
		GegenstandInfo();

	}

}

class GegenstandHandler implements ActionListener {

	public void GegenstandHandler() {
		GegenstandInfoDialog g = new GegenstandInfoDialog();
	}

	public void actionPerformed(ActionEvent e)

	{
		if ("bearbeiten" == e.getActionCommand()) {
			GegenstandInfoDialog dlg = new GegenstandInfoDialog();
			dlg.dispose();
		}
		if ("hinzufuegen" == e.getActionCommand()) {
			System.out.print("yeah");
		}
		if ("Gegenstand bearbeiten" == e.getActionCommand()) {
			GegenstandInfoDialog dlg = new GegenstandInfoDialog();
			dlg.dispose();
		}
		if ("bestaetigen" == e.getActionCommand()) {

		}

	}

}

class GegenstandInfoDialog extends JFrame {

	private GegenstandInfo model;
	private JLabel LabelEingabeGegenstandBeschreibung = new JLabel(
			"Beschreibung eingeben");
	private JTextField EingabeGegenstandBeschreibung = new JTextField(10);

	private JLabel LabelEingabeGegenstandWert = new JLabel("Preis eingeben");
	private JTextField EingabeGegenstandWert = new JTextField(10);

	private JLabel LabelEingabeGegenstandGewicht = new JLabel(
			"Gewicht eingeben");
	private JTextField EingabeGegenstandGewicht = new JTextField(10);

	private JLabel LabelEingabeGegenstandVolumen = new JLabel(
			"Volumen eingeben");
	private JTextField EingabeGegenstandVolumen = new JTextField(10);

	private JLabel LabelEingabeGegenStandKategorie = new JLabel(
			"Kategorie auswählen");
	private JComboBox EingabeGegenstandKategorie = new JComboBox(
			Stammdaten.KATEGORIE);

	private JLabel LabelEingabeGegenstandRaum = new JLabel("Raum auswählen");
	private JComboBox EingabeGegenstandRaum = new JComboBox(Stammdaten.RAEUME);

	private JLabel LabelEingabeGegenstandZerbrechlich = new JLabel(
			"Zerbrechlich Ja/Nein");
	private JComboBox EingabeGegenstandZerbrechlich = new JComboBox(
			Stammdaten.ZERBRECHLICH);

	private JLabel LabelEingabeGegenstandAnmerkung = new JLabel(
			"Anmerkungen eigeben");
	private TextArea EingabeGegenstandAnmerkung = new TextArea("", 10, 5,
			TextArea.SCROLLBARS_VERTICAL_ONLY);

	private JButton EingabeBestätigen = new JButton("Bestätigen");
	private JButton EingabeAbbrechen = new JButton("Abbrechen");

	private JFrame bearbeitungFenster = new JFrame();

	public void GegenstaendeFrameMenuBearbeiten() {
		bearbeitungFenster.setSize(300, 700);
		bearbeitungFenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		bearbeitungFenster.setLocation(30, 30);
		bearbeitungFenster.setVisible(true);
	}

	public void GegenstandBearbeitenBox() {
		Box gegenstandBearbeitenBox = Box.createVerticalBox();

		gegenstandBearbeitenBox.add(LabelEingabeGegenstandBeschreibung);
		gegenstandBearbeitenBox.add(EingabeGegenstandBeschreibung);
		gegenstandBearbeitenBox.add(Box.createVerticalStrut(5));

		gegenstandBearbeitenBox.add(LabelEingabeGegenstandWert);
		gegenstandBearbeitenBox.add(EingabeGegenstandWert);
		gegenstandBearbeitenBox.add(Box.createVerticalStrut(5));

		gegenstandBearbeitenBox.add(LabelEingabeGegenstandGewicht);
		gegenstandBearbeitenBox.add(EingabeGegenstandGewicht);
		gegenstandBearbeitenBox.add(Box.createVerticalStrut(5));

		gegenstandBearbeitenBox.add(LabelEingabeGegenstandVolumen);
		gegenstandBearbeitenBox.add(EingabeGegenstandVolumen);
		gegenstandBearbeitenBox.add(Box.createVerticalStrut(5));

		gegenstandBearbeitenBox.add(LabelEingabeGegenStandKategorie);
		gegenstandBearbeitenBox.add(EingabeGegenstandKategorie);

		gegenstandBearbeitenBox.add(LabelEingabeGegenstandRaum);
		gegenstandBearbeitenBox.add(EingabeGegenstandRaum);
		gegenstandBearbeitenBox.add(Box.createVerticalStrut(5));

		gegenstandBearbeitenBox.add(LabelEingabeGegenstandZerbrechlich);
		gegenstandBearbeitenBox.add(EingabeGegenstandZerbrechlich);
		gegenstandBearbeitenBox.add(Box.createVerticalStrut(10));

		gegenstandBearbeitenBox.add(LabelEingabeGegenstandAnmerkung);
		gegenstandBearbeitenBox.add(EingabeGegenstandAnmerkung);

		JPanel panelGegenstandBearbeiten = new JPanel(new BorderLayout());

		panelGegenstandBearbeiten.setLayout(new FlowLayout(FlowLayout.CENTER));
		panelGegenstandBearbeiten.setBorder(new TitledBorder(
				new EtchedBorder(), "Gegenstand bearbeiten"));

		panelGegenstandBearbeiten.add(gegenstandBearbeitenBox,
				BorderLayout.NORTH);

		Box top = Box.createHorizontalBox();

		top.add(Box.createHorizontalStrut(0));
		top.add(panelGegenstandBearbeiten);

		Container inhalt = bearbeitungFenster.getContentPane();
		BoxLayout box = new BoxLayout(inhalt, BoxLayout.X_AXIS);

		inhalt.setLayout(box);
		inhalt.add(top);

	}

	public void GegenstandBearbeitenBestaetigenBox() {
		Box gegenstandBearbeitenButtonBox = Box.createVerticalBox();

		gegenstandBearbeitenButtonBox.add(EingabeBestätigen);
		// EingabeBestätigen.setActionCommand("bestaetigen");
		EingabeBestätigen.addActionListener(new GegenstandHandler());
		gegenstandBearbeitenButtonBox.add(Box.createVerticalStrut(10));

		gegenstandBearbeitenButtonBox.add(EingabeAbbrechen);

		JPanel panelGegenstandBearbeitenButton = new JPanel(new BorderLayout());

		panelGegenstandBearbeitenButton.setLayout(new FlowLayout(
				FlowLayout.LEFT));
		panelGegenstandBearbeitenButton.setBorder(new TitledBorder(
				new EtchedBorder(), "Bestätigen oder Abrrechen"));

		panelGegenstandBearbeitenButton.add(gegenstandBearbeitenButtonBox,
				BorderLayout.EAST);

		Box topButtonBox = Box.createHorizontalBox();

		topButtonBox.add(Box.createHorizontalStrut(0));
		topButtonBox.add(panelGegenstandBearbeitenButton);

		Container inhaltButton = bearbeitungFenster.getContentPane();

		BoxLayout boxButton = new BoxLayout(inhaltButton, BoxLayout.Y_AXIS);

		inhaltButton.setLayout(boxButton);
		inhaltButton.add(topButtonBox);
	}

	private void initFromModel() {
		EingabeGegenstandBeschreibung.setText(model.getBeschreibung());
	}

	private void updateModel() {
		model.setBeschreibung(EingabeGegenstandBeschreibung.getText());

	}

	public GegenstandInfoDialog() {
		GegenstandBearbeitenBox();
		GegenstaendeFrameMenuBearbeiten();
		GegenstandBearbeitenBestaetigenBox();
		initFromModel();
		updateModel();
	}

}

class GUIListe extends JList {
	private DefaultListModel swingListModel = new DefaultListModel();

	public void setElements(Collection gegenstandListe) {
		swingListModel.removeAllElements();
		Iterator iter = gegenstandListe.iterator();
		while (iter.hasNext()) {
			GegenstandInfo g = (GegenstandInfo) iter.next();
			swingListModel.addElement(g.getDisplayString());
		}
	}

	public GUIListe() {
		setModel(swingListModel);
	}
}

class Gegenstaende {

	ArrayList gegenstandListe = new ArrayList();

	// Mit dieser Methode kann ein neuer Gegenstand in die Arrayliste
	// hinzugefuegt werden
	public void addGegenstand(GegenstandInfo g) {
		gegenstandListe.add(g);
	}

	// Mit dieser Methode koennen Gegenstande anhand eines Indexes aus der
	// Arryliste erreicht werden
	public GegenstandInfo getGegenstandInfo(int index) {

		return (GegenstandInfo) gegenstandListe.get(index);
	}

	// Mit dieser Methode wird die Anzahl aller Gegenstaende ausgegeben.
	public int getAnzahlGegenstaende() {

		return gegenstandListe.size();
	}

	// Diese Methode loescht einen Gegentand aus der Arrayliste.
	public void deleteGegenstand(int index) {

		gegenstandListe.remove(index);

	}

	public boolean searchGegenstand() {
		return false;

	}

	public void sortGegenstandListe() {
		Collections.sort(gegenstandListe);
	}

	public double valueGegenstaende() {

		Iterator iterator = gegenstandListe.iterator();
		int i = 0;
		double value = 0;
		while (iterator.hasNext()) {
			GegenstandInfo g = (GegenstandInfo) iterator.next();

			value = value + g.getWert();

		}

		return value;
	}

	public Collection getGegenstaende() {

		return gegenstandListe;
	}
}

class GegenstaendeDAO {

	private Gegenstaende gegenstaende;

	public GegenstaendeDAO(Gegenstaende liste) {

		gegenstaende = liste;
	}

	public void inDateiSchreiben(String dateiname)
			throws FileNotFoundException, IOException {
		FileOutputStream fos = new FileOutputStream(dateiname);
		DataOutputStream out = new DataOutputStream(fos);

		// Anzahl der Gegenstaende speichern
		out.writeInt(gegenstaende.getAnzahlGegenstaende());

		// Alle Gegenstaende nacheinander speichern
		GegenstandInfoDAO dao = new GegenstandInfoDAO(null);
		Iterator iterator = gegenstaende.gegenstandListe.iterator();

		while (iterator.hasNext()) {
			GegenstandInfo g = (GegenstandInfo) iterator.next();
			dao.setGegenstandInfo(g);
			dao.writeToStream(out);

		}
		out.close();

	}

	public void ausDateiLesen(String dateiname) throws FileNotFoundException,
			IOException {

		FileInputStream fis = new FileInputStream(dateiname);
		DataInputStream in = new DataInputStream(fis);

		// Anzahl Gegenstaende lese
		int anzahlGegenstaende = in.readInt();

		// Alle Gegenstaende nacheinander lese

		GegenstandInfoDAO dao = new GegenstandInfoDAO(null);
		for (int i = 0; i < anzahlGegenstaende; ++i) {
			GegenstandInfo g = new GegenstandInfo(); // neues
			// GegenstandInfo-Objekt
			dao.setGegenstandInfo(g); // DAO initialisieren
			dao.readFromStream(in); // Objektzustand r�cklesen
			gegenstaende.addGegenstand(g); // zur Liste hinzuf�gen
		}
		in.close(); // Schlie�t ebenfalls den FileInputStream!
	}
}

class GegenstandInfo implements Comparable {

	private String beschreibung;
	private int raum;
	private int zerbrechlich;
	private int kategorie;

	private double wert;
	private double volumen;
	private double gewicht;
	private String anmerkung;

	//
	public String getDisplayString() {

		return beschreibung + ", " + raum;

	}

	public int compareTo(Object o) {

		GegenstandInfo g = (GegenstandInfo) o;
		if (raum < g.raum) {
			return -1;
		} else if (raum > g.raum) {
			return 1;
		} else
			return 0;
	}

	public void setAnmerkung(String anmerkung) {
		this.anmerkung = anmerkung;
	}

	public String getAnmerkung() {

		return anmerkung;
	}

	public void setBeschreibung(String beschreibung) {
		this.beschreibung = beschreibung;
	}

	public String getBeschreibung() {

		return beschreibung;
	}

	public void setRaum(int raum) {
		this.raum = raum;
	}

	public int getRaum() {
		return raum;

	}

	public void setZerbrechlich(int zerbrechlich) {

		this.zerbrechlich = zerbrechlich;
	}

	public int getZerbrechlich() {
		return zerbrechlich;
	}

	public void setKategorie(int kategorie) {
		this.kategorie = kategorie;

	}

	public int getKategorie() {
		return kategorie;
	}

	public void setWert(double wert) {
		this.wert = wert;

	}

	public double getWert() {
		return wert;
	}

	public void setVolumen(double volumen) {
		this.volumen = volumen;
	}

	public double getVolumen() {
		return volumen;
	}

	public void setGewicht(double gewicht) {
		this.gewicht = gewicht;
	}

	public double getGewicht() {
		return gewicht;
	}

}

class GegenstandInfoDAO {

	private GegenstandInfo gegenstandInfo;

	public GegenstandInfoDAO(GegenstandInfo ginfo) {

		gegenstandInfo = ginfo;

	}

	public void setGegenstandInfo(GegenstandInfo ginfo) {

		gegenstandInfo = ginfo;
	}

	public void writeToStream(DataOutputStream out) throws IOException {
		out.writeUTF(gegenstandInfo.getBeschreibung());
		out.writeInt(gegenstandInfo.getRaum());
		out.writeInt(gegenstandInfo.getKategorie());
		out.writeDouble(gegenstandInfo.getWert());
		out.writeDouble(gegenstandInfo.getVolumen());
		out.writeDouble(gegenstandInfo.getGewicht());
		out.writeInt(gegenstandInfo.getZerbrechlich());
		out.writeUTF(gegenstandInfo.getAnmerkung());

	}

	public void readFromStream(DataInputStream in) throws IOException {

		gegenstandInfo.setBeschreibung(in.readUTF());
		gegenstandInfo.setRaum(in.readInt());
		gegenstandInfo.setKategorie(in.readInt());
		gegenstandInfo.setWert(in.readDouble());
		gegenstandInfo.setVolumen(in.readDouble());
		gegenstandInfo.setZerbrechlich(in.readInt());
		gegenstandInfo.setAnmerkung(in.readUTF());
	}

}

class Stammdaten {

	// Dieses String gibt an, in welchen Raum der Gegenstand sich befindet.
	public static final String RAEUME[] = {

	"Kueche", "Wohnzimmer", "Schlafzimmer", "Badezimmer", "Arbeitszimmer",
			"Kinderzimmer", "Diele", "Speicher", "Garage", "Sonstiger Raum"

	};

	// Dieses String Array bietet die Moeglichkeit einen Gegenstand als
	// zerbrechlich oder nicht zerbrechlich zu deklarieren.

	public static final String ZERBRECHLICH[] = {

	"Ja", "Nein"

	};

	public static final String KATEGORIE[] = {

	"Elektronik", "Moebel", "Waesche", "Geschirr", "Werkzeug",
			"Reinigungsmittel", "Hobby", "Textilien", "Dekoration",
			"Spielzeug", "Amaturen", "Buecher"

	};

}
 

Neue Themen


Zurück
Oben