E ai galerinha do GUJ, blz ?
Bom, eu tenho no programa um JFrame principal que dentro dele há um botao certo ? E esse botao, qdo clicado, abre um outro JFrame, que contém um JTextArea que permite a geração de relatório ok? 
Gostaria de fazer uma coisa: antes de mais nada vamos chamar o JFrame principal de JFrame 1 e o do JTextArea de JFrame 2 ok ? bom, se o usuário fechar o JFrame 2, gostaria que o texto que ele escreveu nao perdesse, para que qdo ele clicar de novo no botao, o texto continue la no textarea. alguem tem alguma ideia de como fazer isso ? 
grato,
         
         
           
        
            
            
            
         
         
             
             
          
       
      
        
        
          alias, segue o codigo que trata isso:
package ferramentas;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.border.TitledBorder;
public class Relatorio {
	
	JPanel painelRel, p2, painelCentral, painelSuperior;
	JRadioButton plain, bold, italic, boldItalic;
	ButtonGroup radioGroup;
	Font plainFont, boldFont, italicFont, biFont;
	JTextArea texto;
	
	public Relatorio() {
		JFrame frame = new JFrame("Relatório");
		
		painelCentral = new JPanel(new BorderLayout());
	    painelSuperior = new JPanel(new FlowLayout());
		p2 = new JPanel();
		painelRel = new JPanel();
		
		texto = new JTextArea(45, 40);
		texto.setLineWrap(true);
		texto.setWrapStyleWord(true);
		JScrollPane barra = new JScrollPane(texto); //Adiciona Scroll a TextArea
		barra.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
		p2.add(barra); //Adiciona a Scroll ao painel
	    painelRel.add(p2);
	    painelCentral.add(painelRel,BorderLayout.CENTER);
	    painelCentral.add(painelSuperior,BorderLayout.NORTH);
	    
	    TitledBorder tituloBot;
	    tituloBot = BorderFactory.createTitledBorder("Fontes");
	    
	    JPanel painelBotao = new JPanel();
	    painelBotao.setPreferredSize(new Dimension(300, 80));
	    painelBotao.setBorder(tituloBot);
	    
	    plain = new JRadioButton("Plain", true);
	    painelBotao.add(plain);
	    bold = new JRadioButton("Bold", false);
	    painelBotao.add(bold);
	    
	    italic = new JRadioButton("Italic", false);
	    painelBotao.add(italic);
	    
	    boldItalic = new JRadioButton("Bold/Italic", false);
	    painelBotao.add(boldItalic);
	    RadioButtonAction act = new RadioButtonAction();
	    plain.addItemListener(act);
	    bold.addItemListener(act);
	    italic.addItemListener(act);
	    boldItalic.addItemListener(act);
	    radioGroup = new ButtonGroup();
	    radioGroup.add(plain);
	    radioGroup.add(bold);
	    radioGroup.add(italic);
	    radioGroup.add(boldItalic);
	    plainFont = new Font("Serif", Font.PLAIN, 14);
	    boldFont = new Font("Serif", Font.BOLD, 14);
	    italicFont = new Font("Serif", Font.ITALIC, 14);
	    biFont = new Font("Serif", Font.BOLD + Font.ITALIC, 14);
	    texto.setFont(plainFont);
	    painelSuperior.add(painelBotao);
	    frame.add(painelCentral);
	    frame.setVisible(true);
	    frame.setSize(500, 850);
	}
	
	private class RadioButtonAction implements ItemListener {
		public void itemStateChanged(ItemEvent e) {
			if(e.getSource() == plain)
				texto.setFont(plainFont);
			else if(e.getSource() == bold)
					texto.setFont(boldFont);
			else if(e.getSource() == italic)
					texto.setFont(italicFont);
			else if(e.getSource() == boldItalic)
					texto.setFont(biFont);
		}
	}
} 
         
         
        
            
            
            
         
         
             
             
          
       
      
        
        
          Feche o Frame2 com setVisible(false). Isso só o tornará invisível. 
Depois, no Frame1, dê new uma única vez no Frame2, guardando a variável dele numa propriedade.
Nas demais vezes, basta dar setVisible(true) no frame.
         
         
        
            
            
            
         
         
             
             
          
       
      
        
        
          
 ViniGodoy:
 
Depois, no Frame1, dê new uma única vez no Frame2, guardando a variável dele numa propriedade. 
Nas demais vezes, basta dar setVisible(true) no frame.
 
 
cara, nao entendi o que vc disse sobre isso … 
tipo, fiz a chamada do JFrame 2 assim:
        relatorio = new JButton("Relatorio");
        relatorio.addActionListener(
        		new ActionListener() {
					public void actionPerformed(ActionEvent e) {
						r = new Relatorio(); //ai chama a classe Relatorio, e obviamente ira abrir o JFrame 2
					}
        }); 
mas nao entendi o que vc quis dizer com aquilo … 
poderia me especificar ? mais detalhes por favor  
t+
         
         
        
            
            
            
         
         
             
             
          
       
      
        
        
          Ele disse q vc poderiar fazer pra quando o usuario fechar o frame, inves de fechar ele faria o frame ficar invisivel tendo assim os dados ainda nele
         
         
        
            
            
            
         
         
             
             
          
       
      
        
        
          
mas entao … foi o que eu fiz … mas mesmo assim nao deu certo … 
veja (isso na classe do JFrame 2):
	    addWindowListener(
	    		new WindowListener() {
					public void windowClosed(WindowEvent e) {
						setVisible(false);
					}
					public void windowClosing(WindowEvent e) { }
					public void windowActivated(WindowEvent e) { }
					public void windowDeactivated(WindowEvent e) { }
					public void windowDeiconified(WindowEvent e) { }
					public void windowIconified(WindowEvent e) { }
					public void windowOpened(WindowEvent e) { }
	    			
	    }); 
         
         
        
            
            
            
         
         
             
             
          
       
      
        
        
          
mas entao … foi o que eu fiz … mas mesmo assim nao deu certo … 
veja (isso na classe do JFrame 2):
[code] 
addWindowListener( 
new WindowListener() { 
public void windowClosed(WindowEvent e) { 
setVisible(false); 
}
				public void windowClosing(WindowEvent e) { }
				public void windowActivated(WindowEvent e) { }
				public void windowDeactivated(WindowEvent e) { }
				public void windowDeiconified(WindowEvent e) { }
				public void windowIconified(WindowEvent e) { }
				public void windowOpened(WindowEvent e) { }
    			
    });
 
[/code][/quote]