Ciao LeleFT, ti ringrazio per la prontezza e la disponibilità...
doc l'ho dichiarato all'interno della classe principale, buildo il tutto e nessun problema ma al momento dell'esecuzione, quando presso il JButton, i nodi vengono al pettine!!! :-) Sono alle prime armi con Java quindi ho mille dubbi, ho pensato forse che le linee di codice all'interno dell'actionPerformed non si possono usare e ho provato a usare metodi esterni che facessero la stessa cosa richiamandoli da lì,ma niente...penso che la cosa migliore è se ti mando tutto il codice...a tuo buon cuore e alla tua pazienza affido una risposta ai miei problemi... :-)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.io.*;
import java.sql.*;
import java.net.*;
import java.text.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import java.lang.*;
//La classe finestra ha un costruttore che crea due JTextField e un JComboBox e un JButton. Alla pressione del bottone quello che dovrebbe succedere è che i dati immessi dall'utente siano passati a stringa e inseriti in un Document dal quale (attraverso una classse che ho già ma che ancora non ho usato) dovrei ottenere un file Xml
public class Finestra extends JFrame implements ActionListener
{
private JTextField Cognome,Matricola;
private JButton Salva;
private JComboBox Menu;
private String[] Scelta;
private Document doc;
/** Creates a new instance of Finestra */
public Finestra(String titolo ){
super(titolo);
setSize(new Dimension(400, 500));
setLocation(100,100);
JLabel label_cognome = new JLabel("Cognome");
Cognome = new JTextField(15);
JLabel label_matr = new JLabel("Matricola");
Matricola = new JTextField(15);
JLabel label_menu = new JLabel("Corso");
Scelta = new String[2];
Scelta[0]= "Ingegneria informatica";
Scelta[1]= "Scienze della comunicazione";
Menu = new JComboBox(Scelta);
JLabel label_salva = new JLabel("Clicca x salvare in XML");
Salva = new JButton("Salva i dati in XML");
Salva.addActionListener(this);
JPanel pannello_inserimento1 = new JPanel();
pannello_inserimento1.add(label_cognome);
pannello_inserimento1.add(Cognome);
JPanel pannello_inserimento2 = new JPanel();
pannello_inserimento2.add(label_matr);
pannello_inserimento2.add(Matricola);
JPanel pannello_inserimento3 = new JPanel();
pannello_inserimento3.add(label_menu);
pannello_inserimento3.add(Menu);
JPanel bottone = new JPanel();
bottone.add(label_salva);
bottone.add(Salva);
Container c = this.getContentPane();
c.setLayout(new GridLayout(2,3));
c.add(pannello_inserimento1);
c.add(pannello_inserimento2);
c.add(pannello_inserimento3);
c.add(bottone);
}/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Finestra f= new Finestra("Modulo_immissione_dati");
f.show();
}
public void actionPerformed(ActionEvent actionEvent)
{
String radice = (String)Menu.getSelectedItem();
String figlio1 = Cognome.getText();
String figlio2 = Matricola.getText();
try
{
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBu ilder();
doc = builder.newDocument();
}
catch (Exception e)
{
System.out.println("Errore!!");
}
Element root = doc.createElement(radice);
doc.appendChild(root);
Element child1 = doc.createElement (figlio1);
Element child2 = doc.createElement (figlio2);
}
}
Questi sono i messaggi di errore che mi genera una volta premuto il JButton:
Exception in thread "AWT-EventQueue-0" org.w3c.dom.DOMException: INVALID_CHARACTER_ERR: An invalid or illegal XML character is specified.
at com.sun.org.apache.xerces.internal.dom.CoreDocumen tImpl.createElement(CoreDocumentImpl.java:626)
at progetto.Finestra.actionPerformed(Finestra.java:11 9)
at javax.swing.AbstractButton.fireActionPerformed(Abs tractButton.java:1849)
at javax.swing.AbstractButton$Handler.actionPerformed (AbstractButton.java:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed (DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultB uttonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseRe leased(BasicButtonListener.java:234)
at java.awt.Component.processMouseEvent(Component.jav a:5488)
at javax.swing.JComponent.processMouseEvent(JComponen t.java:3126)
at java.awt.Component.processEvent(Component.java:525 3)
at java.awt.Container.processEvent(Container.java:196 6)
at java.awt.Component.dispatchEventImpl(Component.jav a:3955)
at java.awt.Container.dispatchEventImpl(Container.jav a:2024)
at java.awt.Component.dispatchEvent(Component.java:38 03)
at java.awt.LightweightDispatcher.retargetMouseEvent( Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(C ontainer.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Conta iner.java:3822)
at java.awt.Container.dispatchEventImpl(Container.jav a:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1774 )
at java.awt.Component.dispatchEvent(Component.java:38 03)
at java.awt.EventQueue.dispatchEvent(EventQueue.java: 463)
at java.awt.EventDispatchThread.pumpOneEventForHierar chy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarch y(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispa tchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThre ad.java:110)
Ti ringrazio ancora, se non riceverò risposta non ti preoccupare perchè capisco che forse ti sto richiedendo uno sforzo eccessivo...Ciao

Rispondi quotando