Pessoal, sou nova aqui, mas estou com uma tremenda duvida, ja tentei de tudo, ja pesquisei bastante e nao achei nenhuma solução.
Bem o meu problema é o seguinte, digito dados em um JTextField e o sistema acrescenta em um JTable até ai tudo bem,só que eu quero pegar os dados mostrado no JTable e salvar em um arquivo xml, so q nao sei como eu faço.
O código que estou utilizando é esse abaixo:
package br.teste.exemplos;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import com.thoughtworks.xstream.XStream;
public class TesteComTable extends JFrame{
JTextField t1, t2;
JLabel l1, l2;
JTable tabela;
JButton b1, b2, b3, b4;
DefaultTableModel dtm;
Agenda a = new Agenda();
public TesteComTable (){
InterfaceTeste();
}
public void InterfaceTeste(){
setTitle("Teste tabela");
setSize(600, 285);
getContentPane().setBackground(new Color(150, 205, 205));
Color c = new Color (150, 205, 205);
l1 = new JLabel ("Nome:");
l2 = new JLabel ("Telefone:");
t1 = new JTextField ();
t2 = new JTextField ();
b1 = new JButton ("Adicionar");
b1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){Adicione();}
});
b2 = new JButton ("Excluir");
b2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){Excluir();}
});
b3 = new JButton ("Salvar");
b3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){Gravar();}
});
b4 = new JButton ("Limpar");
tabela = new JTable(0, 2);
dtm = (DefaultTableModel)tabela.getModel();
Object coluna[]={"Nome", "Telefone"};
dtm.setColumnIdentifiers(coluna);
JPanel Direito = new JPanel(new GridLayout(0,1));
Direito.setBackground(c);
Direito.add(l1);
Direito.add(t1);
Direito.add(l2);
Direito.add(t2);
JPanel Esquerdo = new JPanel (new GridLayout(0,1));
Esquerdo.setBackground(c);
Esquerdo.add(b1);
Esquerdo.add(b2);
Esquerdo.add(b3);
Esquerdo.add(b4);
JScrollPane Centro = new JScrollPane(tabela);
Centro.setBackground(c);
Container con = getContentPane();
BorderLayout layout = new BorderLayout();
con.setLayout(layout);
con.add(BorderLayout.WEST, Direito);
con.add(BorderLayout.EAST, Esquerdo);
con.add(BorderLayout.CENTER, Centro);
}
public void Adicione() {
a.setNome(t1.getText());
a.setTelefone(t2.getText());
dtm = (DefaultTableModel)tabela.getModel();
dtm.addRow(new Object[]{a.getNome(), a.getTelefone()});
t1.setText("");
t2.setText("");
t1.grabFocus();
}
public void Excluir(){
try{
int linha = tabela.getSelectedRow();
//remover da janela
dtm.removeRow(linha);
}
catch (Exception e){
JOptionPane.showMessageDialog(null, "Impossível excluir!\nLinha não selecionada");
}
}
public void Gravar(){
String entrada= JOptionPane.showInputDialog("Informe o nome a qual deseja salvar o arquivo:");
String arquivo = Diretorio()+"\\"+entrada+".xml";
//for (int i=0; i<tabela.getRowCount(); i++){
//SalvaArquivoXML (dtm);
//}
//boolean adiciona = true;
}
public String Diretorio (){
JFileChooser fc = new JFileChooser();
// restringe a amostra a diretorios apenas
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int res = fc.showOpenDialog(null);
if(res == JFileChooser.APPROVE_OPTION){
File diretorio = fc.getSelectedFile();
String dir = diretorio.getPath();
return dir;
}
else
JOptionPane.showMessageDialog(null, "Voce nao selecionou nenhum diretorio.");
return null;
}
/*public void SalvaArquivoXML (DefaultTableModel dtm){
//XStream arquivoXML = new XStream();
for (int j=0; j<=dtm.getRowCount(); j++)
for(int i=0; i<=dtm.getColumnCount(); i++)
{
JOptionPane.showMessageDialog(null, (String)dtm.getValueAt(j,i));
}
}*/
public static void main (String [] args){
JFrame janela = new TesteComTable();
janela.setLocationRelativeTo(null);
janela.setVisible(true);
}
}
Agradeço
