Hilfe bei public void actionPerformed()

Project601

Grünschnabel
Hallo Leute,

Ich habe ein Problem mit meinen Buttons. Ich schreibe z.B. mit einem Button Daten in eine XML Datei und so wies aussieht geht er die Anweisungen der anderen Buttons (die ähnlich aussehen) mit ab. Soll heisen, es entstehen leere Datenstrukturen in der XML Datei die garnicht mit diesem Button erstellt werden sollen sondern über einen anderen Button erstellt werden sollen. Könnte dieses Problem daher kommen das die Anweisungen der Buttons alle als if Anweisungen in ein und demselben public void actionPerformed(ActionEvent event) stehen?
Ich hoffe ihr könnt mit der Beschreibung was anfangen. :confused:
Ich muss dazu sagen, ich bin Neuling in Sachen Java Programmierung. Also nich zu viel erwarten.;)
 
Heyho,

So wie du es beschrieben hast, ist es genau das Problem...
Füge lieber jedem Button einen ActionListener hinzu.
Falls es immer der selbe code ist, der ausgeführt wird, erstellst du einfach eine Methode, die aufgerufen wird beim klick!

Viel Glück!
 
Hi,

Danke erstmal für die schnelle Antwort. :)
Hmmm.....ich glaub da versteh ich dich noch nich richtig. (Könnte aber auch an der späten Sunde liegen) Ich hab hier mal meinen Code. Das mit den Buttons und dem ActionPerformed steht ziemlich weit unten. Vieleicht könntest du mir konkret eine Abänderung vorschlagen?! Das wäre super.
Code:
public class Neukunde extends Frame implements ActionListener {
        ......
	}
	public Neukunde() {
		super();
		initialize();
	}

	private void initialize() {
		......
	}

	private Panel getKundenatribute() {
		.........
		}
		return Kundenatribute;
	}

	
	private Panel getKundenatributEingabe() {
		........
		}
		return KundenatributEingabe;
	}

	
	private TextField getNAME() {
		if (NAME == null) {
			NAME = new TextField();
			NAME.setPreferredSize(new Dimension(150, 23));
		}
		return NAME;
	}

	
	private TextField getVORNAME() {
		if (VORNAME == null) {
			VORNAME = new TextField();
			VORNAME.setPreferredSize(new Dimension(150, 23));
		}
		return VORNAME;
	}

	
	private TextField getANREDE() {
		if (ANREDE == null) {
			ANREDE = new TextField();
			ANREDE.setPreferredSize(new Dimension(150, 23));
		}
		return ANREDE;
	}

	
	private TextField getORT() {
		if (ORT == null) {
			ORT = new TextField();
			ORT.setPreferredSize(new Dimension(150, 23));
		}
		return ORT;
	}

	
	private TextField getPLZ() {
		if (PLZ == null) {
			PLZ = new TextField();
			PLZ.setPreferredSize(new Dimension(150, 23));
		}
		return PLZ;
	}

	
	private TextField getSTRASSE() {
		if (STRASSE == null) {
			STRASSE = new TextField();
			STRASSE.setPreferredSize(new Dimension(150, 23));
		}
		return STRASSE;
	}

	
	private TextField getEMAIL() {
		if (EMAIL == null) {
			EMAIL = new TextField();
			EMAIL.setPreferredSize(new Dimension(150, 23));
		}
		return EMAIL;
	}

	private TextField getTELEFONNUMMER() {
		if (TELEFONNUMMER == null) {
			TELEFONNUMMER = new TextField();
			TELEFONNUMMER.setPreferredSize(new Dimension(150, 23));
		}
		return TELEFONNUMMER;
	}

	
	private Button getKundenAnlegen() {
		if (KundenAnlegen == null) {
			KundenAnlegen = new Button();
			KundenAnlegen.setName("ButtonAnlegen");
			KundenAnlegen.setLabel("Kunden anlegen");
			KundenAnlegen.addActionListener(this);
		}
		return KundenAnlegen;
	}

	
	private Panel getAnlegen() {
		.....
		}
		return Anlegen;
	}

	
	private TextField getKundennummer() {
		if (Kundennummer == null) {
			Kundennummer = new TextField();
			Kundennummer.setName("Kundennummer");
			Kundennummer.setPreferredSize(new Dimension(50, 23));
		}
		return Kundennummer;
	}

	private Button getKundendatenAbfrage() {
		if (KundendatenAbfrage == null) {
			KundendatenAbfrage = new Button();
			KundendatenAbfrage.setLabel("Kundendaten abfragen");
			KundendatenAbfrage.setName("KundendatenAbfrage");
			KundendatenAbfrage.addActionListener(this);
		}
		return KundendatenAbfrage;
	}

	
	private TextField getNAMEALT() {
		if (NAMEALT == null) {
			NAMEALT = new TextField();
			NAMEALT.setName("NAMEALT");
			NAMEALT.setPreferredSize(new Dimension(150, 23));
		}
		return NAMEALT;
	}

	
	private TextField getVORNAMEALT() {
		if (VORNAMEALT == null) {
			VORNAMEALT = new TextField();
			VORNAMEALT.setName("VORNAMEALT");
			VORNAMEALT.setPreferredSize(new Dimension(150, 23));
		}
		return VORNAMEALT;
	}

	
	private TextField getANREDEALT() {
		if (ANREDEALT == null) {
			ANREDEALT = new TextField();
			ANREDEALT.setName("ANREDEALT");
			ANREDEALT.setPreferredSize(new Dimension(150, 23));
		}
		return ANREDEALT;
	}

	
	private TextField getORTALT() {
		if (ORTALT == null) {
			ORTALT = new TextField();
			ORTALT.setName("ORTALT");
			ORTALT.setPreferredSize(new Dimension(150, 23));
		}
		return ORTALT;
	}

	
	private TextField getPLZALT() {
		if (PLZALT == null) {
			PLZALT = new TextField();
			PLZALT.setName("PLZALT");
			PLZALT.setPreferredSize(new Dimension(150, 23));
		}
		return PLZALT;
	}

	
	private TextField getSTRASSEALT() {
		if (STRASSEALT == null) {
			STRASSEALT = new TextField();
			STRASSEALT.setName("STRASSEALT");
			STRASSEALT.setPreferredSize(new Dimension(150, 23));
		}
		return STRASSEALT;
	}

	
	private TextField getEMAILALT() {
		if (EMAILALT == null) {
			EMAILALT = new TextField();
			EMAILALT.setName("EMAILALT");
			EMAILALT.setPreferredSize(new Dimension(150, 23));
		}
		return EMAILALT;
	}

	
	private TextField getTELEFONNUMMERALT() {
		if (TELEFONNUMMERALT == null) {
			TELEFONNUMMERALT = new TextField();
			TELEFONNUMMERALT.setName("TELEFONNUMMERALT");
			TELEFONNUMMERALT.setPreferredSize(new Dimension(150, 23));
		}
		return TELEFONNUMMERALT;
	}

	
	private Panel getAuftrag() {
		.......
		}
		return Auftrag;
	}

	
	private Button getArtikelNachName() {
		if (ArtikelNachName == null) {
			ArtikelNachName = new Button();
			ArtikelNachName.setLabel("Artikel nach Name hinzufügen:");
			ArtikelNachName.setName("ArtikelNachName");
		    ArtikelNachName.addActionListener(this);
		}
		return ArtikelNachName;
	}

	
	private Button getArtikelNachNummer() {
		if (ArtikelNachNummer == null) {
			ArtikelNachNummer = new Button();
			ArtikelNachNummer.setLabel("Artikel nach Nummer hinzufügen:");
			ArtikelNachNummer.setName("ArtikelNachNummer");
			ArtikelNachNummer.addActionListener(this);
			
		}
		return ArtikelNachNummer;
	}

	
	private TextField getArtikelName() {
		if (ArtikelName == null) {
			ArtikelName = new TextField();
			ArtikelName.setName("ArtikelName");
			ArtikelName.setPreferredSize(new Dimension(100, 23));
		}
		return ArtikelName;
	}

	
	private TextField getArtikelNummer() {
		if (ArtikelNummer == null) {
			ArtikelNummer = new TextField();
			ArtikelNummer.setName("ArtikelNummer");
			ArtikelNummer.setPreferredSize(new Dimension(100, 23));
		}
		return ArtikelNummer;
	}

	
	private List getArtikelListe() {
		if (ArtikelListe == null) {
			ArtikelListe = new List();
			ArtikelListe.setName("ArtikelListe");
		}
		return ArtikelListe;
	}

	
	private Button getAuftragAbschluss() {
		if (AuftragAbschluss == null) {
			AuftragAbschluss = new Button();
			AuftragAbschluss.setLabel("Auftrag abschließen");
			AuftragAbschluss.setName("AuftragAbschluss");
		}
		return AuftragAbschluss;
	}
	
	
	private Button getAuftragErstellen() {
		if (AuftragErstellen == null) {
			AuftragErstellen = new Button();
			AuftragErstellen.setLabel("Auftrag erzeugen");
			AuftragErstellen.setName("AuftragErstellen");
 		    AuftragErstellen.addActionListener(this);
		}
		return AuftragErstellen;
	}
	
	public void actionPerformed(ActionEvent event) {
		// TODO Automatisch erstellter Methoden-Stub
	     if (event.getSource() == KundenAnlegen);
		   
            try {
			
			  DocumentBuilderFactory factory =  DocumentBuilderFactory.newInstance();
	          DocumentBuilder builder = factory.newDocumentBuilder();
	          Document document =builder.parse("c:/xmtest.xml");
	          Node rootNode = document.getDocumentElement();
			  
	          
	          NodeList root = document.getElementsByTagName("Kunde");
	          int i = root.getLength();
			  Node nodeMain = root.item(i);
			  i--;
	          String j = root.item(i).getAttributes().item(0).getTextContent();
	          int Nummer = Integer.parseInt(j);
	          Nummer++;
	          String KndNr = Integer.toString(Nummer);
	          Kundennummer.setText(KndNr);
	          
	          Element newMainNode = document.createElement("Kunde");
	          Attr newAttribute = document.createAttribute("Kundennummer");
	          Node newChildNode1 = document.createElement("Name");
	          Text newTextNode1 = document.createTextNode(NAME.getText());
	          Node newChildNode2 = document.createElement("Vorname");
	          Text newTextNode2 = document.createTextNode(VORNAME.getText());
	          Node newChildNode3 = document.createElement("Ort");
	          Text newTextNode3 = document.createTextNode(ORT.getText());
	          Node newChildNode4 = document.createElement("PLZ");
	          Text newTextNode4 = document.createTextNode(PLZ.getText());
	          Node newChildNode5 = document.createElement("Strasse");
	          Text newTextNode5 = document.createTextNode(STRASSE.getText());
	          Node newChildNode6 = document.createElement("EMail");
	          Text newTextNode6 = document.createTextNode(EMAIL.getText());
	          Node newChildNode7 = document.createElement("Anrede");
	          Text newTextNode7 = document.createTextNode(ANREDE.getText());
	          Node newChildNode8 = document.createElement("Telfonnummer");
	          Text newTextNode8 = document.createTextNode(TELEFONNUMMER.getText());
	        
	          newAttribute.setValue(KndNr);
	          newMainNode.setAttributeNode(newAttribute);
	          newChildNode1.appendChild(newTextNode1);
	          newMainNode.appendChild(newChildNode1);
	          newChildNode2.appendChild(newTextNode2);
	          newMainNode.appendChild(newChildNode2);
	          newChildNode3.appendChild(newTextNode3);
	          newMainNode.appendChild(newChildNode3);
	          newChildNode4.appendChild(newTextNode4);
	          newMainNode.appendChild(newChildNode4);
	          newChildNode5.appendChild(newTextNode5);
	          newMainNode.appendChild(newChildNode5);
	          newChildNode6.appendChild(newTextNode6);
	          newMainNode.appendChild(newChildNode6);
	          newChildNode7.appendChild(newTextNode7);
	          newMainNode.appendChild(newChildNode7);
	          newChildNode8.appendChild(newTextNode8);
	          newMainNode.appendChild(newChildNode8);
	          
	          rootNode.insertBefore(newMainNode, nodeMain);
	          rootNode.normalize();
	          
	          Transformer transformer = TransformerFactory.newInstance().newTransformer();
	          DOMSource source = new DOMSource(document);
	          FileOutputStream os = new FileOutputStream(new File("c:/xmtest.xml"));
	          StreamResult result = new StreamResult(os);
	          transformer.transform(source, result);
	          
			  //System.out.println(root.item(0).getTextContent());
			  //System.out.println(root.item(0).getLocalName());
			  //System.out.print(root.item(0).getNodeValue().toString());
			  //System.out.println(root.item(0).getNextSibling().toString());
			  } catch (Exception e) {
				   // TODO Automatisch erstellter Catch-Block
				   e.printStackTrace();
			  }
	
		if (event.getSource() == KundendatenAbfrage);
			   
	          try {
	        	  
	        	  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		          DocumentBuilder builder = factory.newDocumentBuilder();
		          Document document =builder.parse("c:/xmtest.xml"); 
	        	  
		          XPath xpath =(XPath) XPathFactory.newInstance().newXPath();
		          Node AbfrageNode =(Node) xpath.evaluate("//Kunde[@Kundennummer='"+Kundennummer.getText()+"']", document, XPathConstants.NODE);
		          
		          NAMEALT.setText(AbfrageNode.getChildNodes().item(0).getTextContent());
		          VORNAMEALT.setText(AbfrageNode.getChildNodes().item(1).getTextContent());
		          ORTALT.setText(AbfrageNode.getChildNodes().item(2).getTextContent());
		          PLZALT.setText(AbfrageNode.getChildNodes().item(3).getTextContent());
		          STRASSEALT.setText(AbfrageNode.getChildNodes().item(4).getTextContent());
		          EMAILALT.setText(AbfrageNode.getChildNodes().item(5).getTextContent());
		          ANREDEALT.setText(AbfrageNode.getChildNodes().item(6).getTextContent());
		          TELEFONNUMMERALT.setText(AbfrageNode.getChildNodes().item(7).getTextContent());
		          
		          
	          } catch (Exception e) {
	        	  System.out.println("Fehler:" + e);
	          }
	    if (event.getSource() == AuftragErstellen);
			   
	            try {
				
				  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		          DocumentBuilder builder = factory.newDocumentBuilder();
		          Document document =builder.parse("c:/Auftrag.xml");
		          Node rootNode = document.getDocumentElement();
		          
		          NodeList root = document.getElementsByTagName("Auftrag");
		          int i = root.getLength();
				  Node nodeMain = root.item(i);
				  i--;
		          String j = root.item(i).getAttributes().item(0).getTextContent();
		          int Nummer = Integer.parseInt(j);
		          Nummer++;
		          String AftNr = Integer.toString(Nummer);
		          
		          Element newMainNode = document.createElement("Auftrag");
		          Attr newAttribute = document.createAttribute("Auftragsnummer");
		          Node newChildNode1 = document.createElement("Kundennummer");
		          Text newTextNode1 = document.createTextNode(Kundennummer.getText());
		          Node newChildNode2 = document.createElement("Rueckstellnummer");
		          Text newTextNode2 = document.createTextNode("0");
		          
		          newAttribute.setValue(AftNr);
		          newMainNode.setAttributeNode(newAttribute);
		          newChildNode1.appendChild(newTextNode1);
		          newMainNode.appendChild(newChildNode1);
		          newChildNode2.appendChild(newTextNode2);
		          newMainNode.appendChild(newChildNode2);
		          
		          rootNode.insertBefore(newMainNode, nodeMain);
		          rootNode.normalize();
		          
		          Transformer transformer = TransformerFactory.newInstance().newTransformer();
		          DOMSource source = new DOMSource(document);
		          FileOutputStream os = new FileOutputStream(new File("c:/Auftrag.xml"));
		          StreamResult result = new StreamResult(os);
		          transformer.transform(source, result);
		          
	            } catch (Exception e) {
		        	  e.printStackTrace();
		        }
	            
	    if (event.getSource() == ArtikelNachNummer);
				   
	            try {
				
				  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		          DocumentBuilder builder = factory.newDocumentBuilder();
		          Document document =builder.parse("c:/Auftrag.xml");
		          
		          XPath xpath =(XPath) XPathFactory.newInstance().newXPath();
		          Node AbfrageNode =(Node) xpath.evaluate("//Auftrag[Kundennummer='"+Kundennummer.getText()+"']", document, XPathConstants.NODE);
				  Node ChildNode = AbfrageNode.getChildNodes().item(1);
				  
		          Node newChildNode = document.createElement("Artikel");
		          Text newTextNode = document.createTextNode(ArtikelNummer.getText());
		          newChildNode.appendChild(newTextNode);
		          AbfrageNode.appendChild(newChildNode);
		          
		          AbfrageNode.insertBefore(newChildNode, ChildNode);
		          AbfrageNode.normalize();
		          
		          Transformer transformer = TransformerFactory.newInstance().newTransformer();
		          DOMSource source = new DOMSource(document);
		          FileOutputStream os = new FileOutputStream(new File("c:/Auftrag.xml"));
		          StreamResult result = new StreamResult(os);
		          transformer.transform(source, result);
		          ArtikelListe.add("Artikel" + ArtikelNummer.getText());
		          
	            } catch (Exception e) {
		        	  e.printStackTrace();
		        }
	    }
}	    
	    
	    

	

  //  @jve:decl-index=0:visual-constraint="10,10"
 
Heyho,

jetzt, wo ich den Code sehe, kann ich dir noch einen Tipp geben:
Falls du diese Variante wieder verwenden solltest, dann gib den Buttons 'actionCommands'
Java:
// setActionCommand(String actionCommand);
jButton1.setActionCommand("add");
jButton1.setActionCommand("del");

jetzt kannst du in deiner actionPerformed-Methode folgendes tun:
Java:
public void actionPerformed(ActionEvent event) {
    if (event.getActionCommand() == "add")
        // code
    else if(event.getActionCommand() == "del");
        // code
}


Viel Glück!
 
Aha. Ja das sieht logisch aus. Danke ich hab eine Lösung gefunden und es funktioniert endlich fehlerfrei.:D

Danke dir

Mfg Ben
 
Zurück