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:
S

SlaterB

Gast
Strings nie mit == vergleichen sondern mit equals,

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

javanatiker

Mitglied
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^^
 
S

SlaterB

Gast
> 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
 

javanatiker

Mitglied
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...
 
S

SlaterB

Gast
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"

	};

}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Best Practice Auf die Klasse zugreifen im erzeugten ActionListener Allgemeine Java-Themen 2
W ActionListener + Klasse einbinden Allgemeine Java-Themen 2
F JButton und ActionListener Allgemeine Java-Themen 3
F System Tray Menubutton ActionListener Allgemeine Java-Themen 5
V Event Handling ActionListener nur bei "checked" CheckBoxMenuItem Allgemeine Java-Themen 2
S Methode funktioniert nicht als ActionListener Allgemeine Java-Themen 4
C ActionListener - ToggleButton als von KI geklickt "markieren" Allgemeine Java-Themen 2
A ActionListener blockiert Bedienung des ganzen Systems Allgemeine Java-Themen 8
Z Swing Problem mit ActionListener Allgemeine Java-Themen 6
X getText undefiniert in ActionListener Allgemeine Java-Themen 5
D ActionListener wird mit jedem Mal öfter aufgerufen Allgemeine Java-Themen 2
P Variablen Variable von void im ActionListener verwenden Allgemeine Java-Themen 3
F Swing NetBeans nimmt ActionListener nicht an. Allgemeine Java-Themen 2
C Event Handling ActionListener manuell auslösen Allgemeine Java-Themen 8
G Button-Registrierung beim ActionListener erst NACH Tastendruck Allgemeine Java-Themen 2
P ActionListener / Label Name auslesen Allgemeine Java-Themen 2
C ActionListener zwei Buttons zuweisen Allgemeine Java-Themen 11
T ActionListener und Singleton Allgemeine Java-Themen 15
G Übergabeparameter an ActionListener Allgemeine Java-Themen 9
Z Mit ActionListener in anderem Frame lauschen? Allgemeine Java-Themen 3
W 2 Klassen + ActionListener Allgemeine Java-Themen 2
G Anonymen Buttons in for schleife ActionListener hinzufügen Allgemeine Java-Themen 5
C JTree: ActionListener auf die Nodes Allgemeine Java-Themen 3
C ActionListener reagiert zu oft Allgemeine Java-Themen 5
MQue ActionListener und GUI trennen Allgemeine Java-Themen 3
L ActionListener / Buttons Allgemeine Java-Themen 8
E ActionListener Allgemeine Java-Themen 8
TheJavaKid Programmablauf anhalten bis actionlistener ausgeführt wurde Allgemeine Java-Themen 6
minzel ActionListener aus Package Allgemeine Java-Themen 24
F AbstractAction und ActionListener Allgemeine Java-Themen 2
J variablen wert ändernung mit einer art actionlistener? Allgemeine Java-Themen 4
K ActionListener ohne implements? Allgemeine Java-Themen 2
L ActionListener > Variable ... u.v.m. Allgemeine Java-Themen 19
M Methodenübersicht einer Klasse einsehen Allgemeine Java-Themen 14
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
torresbig Klasse mit extends Calendar über Methoden ändern (Hirnblockade) Allgemeine Java-Themen 7
A Zweite Service Klasse beim Kompilieren Allgemeine Java-Themen 6
B Ein Objekt einer Klasse mehreren anderen Klassen zur Verfügung stellen? Allgemeine Java-Themen 6
Atten007 Java-Klasse auf macOS entpacken? Allgemeine Java-Themen 2
M Klasse durch Klassen Aufteilung verbessern, aber wo? Allgemeine Java-Themen 1
E Eine Methode einer extendeten Klasse deakitivieren Allgemeine Java-Themen 12
H Kombination Interface und Abstrakte Klasse bei Generics Allgemeine Java-Themen 3
EinNickname9 Best Practice Singleton und Singleton mit Instanz zu anderer Klasse -Pattern Allgemeine Java-Themen 30
Y ImagePanel von anderer Klasse in eine MainFrame Klasse hinzufügen. Allgemeine Java-Themen 1
Lukas2904 Schleife mit ansteuerung einer Klasse Allgemeine Java-Themen 5
d.lumpi Aus Einer Klasse auf ein Objekt einer anderen Klasse Zugreifen Allgemeine Java-Themen 1
missy72 Klassen Eigene Klasse MessageWindow ähnlich der Alert Klasse Allgemeine Java-Themen 2
Drachenbauer wie kann ich alle instanzen einer Klasse durchsehen, ohne, dass diese in einer Liste erzeugt wurden? Allgemeine Java-Themen 11
kanywayne Java programmieren: Polynom Klasse Allgemeine Java-Themen 4
L Die abzuleitende Klasse als Parameter übergeben Allgemeine Java-Themen 4
S Klassen Einfügen von unbekannter menge an Variablen in eine Klasse mithilfe von ASM Allgemeine Java-Themen 5
C Klasse mit Mockito simulieren Allgemeine Java-Themen 9
P einen public <Optinal String> in einer anderen Klasse mit einem Int vergleichen Allgemeine Java-Themen 2
S Wenn eine Klasse zwei Interfaces mit derselben Methodensignatur implementiert: welche wird aufgerufen? Allgemeine Java-Themen 15
Thallius Key/Value Table in Klasse einlesen Allgemeine Java-Themen 14
S static in Interface und Klasse Allgemeine Java-Themen 2
W Was genau sind IOTools? Kann ich stattdessen nicht die Scanner Klasse verwenden? Allgemeine Java-Themen 3
V Threads Probleme beim Aufrufen von Methoden einer anderen Klasse (Threads) Allgemeine Java-Themen 14
X Collections Gibt es eine Klasse welche die Vorteile von List und HashMap vereint, aber konstante Laufzeit (O(1)) hat in Java? Allgemeine Java-Themen 4
D javassist API Klasse in MethodCall ermitteln Allgemeine Java-Themen 8
kodela Klasse mit "gezipten" Daten Allgemeine Java-Themen 6
J Builder Klasse mit Lombok bauen Allgemeine Java-Themen 2
L Operatoren Java Reflections: Alle Methoden einer Klasse aufrufen ohne Exceptions Allgemeine Java-Themen 5
M [SOAP] - Klasse aus WSDL ausschließen Allgemeine Java-Themen 2
N Generic Type einer Generischen Klasse während der Laufzeit bekommen Allgemeine Java-Themen 2
X Klassen Klasse BreakIterator Allgemeine Java-Themen 6
R Arraylist in andere Klasse leiten und bearbeiten Allgemeine Java-Themen 10
kodela Klassen Klasse "vergisst" ihre Daten Allgemeine Java-Themen 2
pkm Kann eine ServerSocket-Klasse nicht stateful sein? Allgemeine Java-Themen 4
E Socket Dynamische Klasse von ObjectOutputStream lesen. Allgemeine Java-Themen 8
M Matcher-Klasse findet match nicht Allgemeine Java-Themen 6
cool_brivk24 Variablen abfragen von Boolean von anderer Klasse Allgemeine Java-Themen 12
S Seltsames Ergebnis mit Date-Klasse Allgemeine Java-Themen 6
J int Werte in einer anderen Klasse in Arrays speichern Allgemeine Java-Themen 3
D Warum kann ich eine (deflaut) Klasse aus einer Libary in einem anderen Projekt benutzen? Allgemeine Java-Themen 3
Neoline Klassen Singleton Klasse buchmanager Allgemeine Java-Themen 19
M Kapselung Modellierung von Intervallen: Klasse Interval Allgemeine Java-Themen 4
B Übernommene Variablen(werte) aus der Main-Klasse ändern? Allgemeine Java-Themen 9
ReinerCoder Klasse kann nicht public deklariert werden Allgemeine Java-Themen 2
ReinerCoder Methode einer Klasse meldet Fehler "misplaced construct(s)" Allgemeine Java-Themen 13
I Collection - contains-Methode überschreiben (anonyme innere Klasse) Allgemeine Java-Themen 4
X Klassen File-Klasse wird als Directory markiert Allgemeine Java-Themen 8
S Methoden Liste soll Methode aus innerer Klasse aufrufen Allgemeine Java-Themen 4
J IndexOutOfBoundsException bei der Nutzung der Klasse Message von mime4j Allgemeine Java-Themen 5
P Array einer abstrakten Klasse Allgemeine Java-Themen 4
J Zugriff auf erstellte Objekte einer Klasse von einer Klasse ausserhalb Allgemeine Java-Themen 3
kodela Dynamisches Array in einer Klasse Allgemeine Java-Themen 5
M Was geschieht mit Java-Klasse, die aus ArrayList entfernt wird? Allgemeine Java-Themen 10
perlenfischer1984 Lombok Builder soll andere Klasse bauen Allgemeine Java-Themen 4
perlenfischer1984 Mit Lombok Builder Felder in Super Klasse füllen Allgemeine Java-Themen 12
T String aus While Schleife für ganze Klasse sichtbar machen Allgemeine Java-Themen 5
K Mit Button neue Klasse öffnen Allgemeine Java-Themen 9
J Reflection mit Klasse und Subklasse Allgemeine Java-Themen 11
C Classpath Neue Klasse über einen Button ausführen Allgemeine Java-Themen 3
magdaStone Logikproblem Umschalten von booleans in anderer Klasse Allgemeine Java-Themen 7
P mehrer Verschiedene Objekte in einer Klasse erstellen. Allgemeine Java-Themen 4
A Java Klasse auf Tomcat während der Laufzeit austauschen Allgemeine Java-Themen 1
C Abstrakte Klasse, lokale Variable-Problem Allgemeine Java-Themen 1
N Vererbung Design-Problem mit vorhandenen, von der Klasse unabhängigen Methoden Allgemeine Java-Themen 12
Messoras Klassen Sämtliche Variablen einer Klasse übernehmen Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben