Guj, é o seguinte:
Estou criando um editor de textos.
Tenho um JTextPane de uma classe e um JMenuItem para salvar de outra classe.
A dúvida é: Como eu acesso o texto da primeira com a segunda?
No meu código está salvando um arquivo vazio.
Códigos.
JTextPane
package editor;
import javax.swing.BorderFactory;
import javax.swing.JTextPane;
public class AreaTexto extends JTextPane
{
private boolean digitado = false;
public AreaTexto()
{
setBorder(BorderFactory.createLoweredBevelBorder());
}
public String getTexto()
{
String digitado = this.getText();
return digitado;
}
public boolean getDigitado()
{
return digitado;
}
public void setTexto()
{
setText("");
}
public void setDigitado()
{
digitado = true;
}
}
JMenuBar
package editor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JFileChooser;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
public class BarraMenus extends JMenuBar
{
private JMenu menuArquivo, itemNovo;
private JMenuItem novoTexto, salvar,sair;
public BarraMenus()
{
menuArquivo = new JMenu("Arquivo");
itemNovo = new JMenu("Novo");
novoTexto = new JMenuItem("Texto");
salvar = new JMenuItem("Salvar");
sair = new JMenuItem("Sair");
itemNovo.add(novoTexto);
menuArquivo.add(itemNovo);
menuArquivo.add(salvar);
menuArquivo.add(sair);
add(menuArquivo);
novoTexto.addActionListener(new Novo());
salvar.addActionListener(new Salvar());
sair.addActionListener(new Sair());
}
private class Novo implements ActionListener
{
@Override
public void actionPerformed(ActionEvent evento)
{
AreaTexto areaTexto = new AreaTexto();
String digito = areaTexto.getTexto();
if(!digito.isEmpty())
{
areaTexto.setDigitado();
areaTexto.setTexto();
}
}
}
private class Salvar implements ActionListener
{
@Override
public void actionPerformed(ActionEvent evento)
{
AreaTexto areaTexto = new AreaTexto();
String digitado = areaTexto.getText();
JFileChooser arquivo = new JFileChooser();
int retorno = arquivo.showOpenDialog(null);
if(retorno == JFileChooser.APPROVE_OPTION)
{
String caminho = arquivo.getSelectedFile().getAbsolutePath();
try
{
FileWriter fw = new FileWriter(caminho);
fw.write(digitado);
fw.close();
}
catch(FileNotFoundException e)
{
JOptionPane.showMessageDialog(null, "Erro ao salvar arquivo!\n" + e, "Erro!", 0);
}
catch(IOException e)
{
JOptionPane.showMessageDialog(null, "Erro ao salvar arquivo\n" + e, "Erro", 0);
}
}
}
}
private class Sair implements ActionListener
{
@Override
public void actionPerformed(ActionEvent evento)
{
System.exit(0);
}
}
}
Grato.