Hallo Zusammen
Ich habe eine Klasse erstellt welche ein XML-File erzeugt. Die Methode writeXML wird aufgerufen bei Knopfdruck eines Gui's. Dort werden auch die Parameter mitgegeben.
Hier der Aufruf in der anderen Klasse:
Als Dateiname brauche ich immer die aktuelle Zeit plus Datum, alles funktioniert so weit. Doch leider wird das File immer nur überschrieben solange ich das Gui geöffnet habe. Erst wenn ich das Gui schliesse wird wieder eine neue Datei erzeugt. Was muss ich ändern, dass die Datei nicht immer überschrieben wird.?
Vielen Dank und Gruss
Dimitri
Ich habe eine Klasse erstellt welche ein XML-File erzeugt. Die Methode writeXML wird aufgerufen bei Knopfdruck eines Gui's. Dort werden auch die Parameter mitgegeben.
Java:
package Praktikum_Anruf;
import java.io.File;
import java.security.Timestamp;
import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.UUID;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import javax.swing.text.JTextComponent;
import org.w3c.dom.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
public class Xml {
static Calendar cal = Calendar.getInstance ();
public static void writeXML(String origin, String target, String feature){
try {
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
// root elements
Document doc = docBuilder.newDocument();
Element rootElement = doc.createElement("LynCallForwardSettings");
doc.appendChild(rootElement);
// Anrufe umleiten zu: elements
Element test = doc.createElement("OriginUserName");
test.appendChild(doc.createTextNode(origin));
rootElement.appendChild(test);
Element lastname = doc.createElement("TargetUserName");
lastname.appendChild(doc.createTextNode(target));
rootElement.appendChild(lastname);
Element callForwarFeature = doc.createElement("CallForwardFeature");
callForwarFeature.appendChild(doc.createTextNode(feature));
rootElement.appendChild(callForwarFeature);
// write the content into xml file
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);
//Dateiname
String pfad = ReadXml.getSavePath();
System.out.println(pfad + "-----------------------------------");
StreamResult result = new StreamResult(new File
(pfad +
cal.get( Calendar.DAY_OF_MONTH ) +
"_" + (cal.get( Calendar.MONTH ) +1) +
"_" + cal.get( Calendar.YEAR ) +
"_" + cal.get( Calendar.HOUR_OF_DAY ) +
"_" + cal.get( Calendar.MINUTE ) +
"_" + cal.get( Calendar.SECOND ) +
"_" + (cal.get( Calendar.MILLISECOND ) +1) +
".xml"));
// Output to console for testing
// StreamResult result = new StreamResult(System.out);
transformer.transform(source, result);
System.out.println("File saved!");
} catch (ParserConfigurationException pce) {
pce.printStackTrace();
} catch (TransformerException tfe) {
tfe.printStackTrace();
}
}
public static void main(String args[]) {
Gui gui = new Gui();
}
}
Hier der Aufruf in der anderen Klasse:
Java:
btnFunktion.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (rdbtnAnrufumleitungaktivieren.isSelected()) {
lblNewLabel1.setVisible(false);
lblNewLabel2.setVisible(false);
lblNewLabel3.setVisible(false);
lblNewLabel.setVisible(true);
verticalBox_1.setVisible(true);
setFunktion("1");
} else if (rdbtnSatusDerAnrufumleitung.isSelected()) {
lblNewLabel1.setVisible(true);
lblNewLabel2.setVisible(false);
lblNewLabel3.setVisible(false);
lblNewLabel.setVisible(false);
verticalBox_1.setVisible(true);
setFunktion("3");
} else if (rdbtnAnrufumleitungdeaktivieren.isSelected()) {
lblNewLabel1.setVisible(false);
lblNewLabel2.setVisible(true);
lblNewLabel3.setVisible(false);
lblNewLabel.setVisible(false);
verticalBox_1.setVisible(true);
setFunktion("2");
} else {
lblNewLabel1.setVisible(false);
lblNewLabel3.setVisible(true);
lblNewLabel2.setVisible(false);
lblNewLabel.setVisible(false);
verticalBox_1.setVisible(true);
}
try{
//Testet ob auswahl getroffen ist
if (getFunktion().equalsIgnoreCase(null)) {
}
else{
Xml.writeXML(getTextField(), getTextField1(), getFunktion());
}
}catch(Exception e1){
System.out.println("Keine Auswahl getroffen");
}
};
});
Als Dateiname brauche ich immer die aktuelle Zeit plus Datum, alles funktioniert so weit. Doch leider wird das File immer nur überschrieben solange ich das Gui geöffnet habe. Erst wenn ich das Gui schliesse wird wieder eine neue Datei erzeugt. Was muss ich ändern, dass die Datei nicht immer überschrieben wird.?
Vielen Dank und Gruss
Dimitri