Programa com interface gráfica

Gostaria que alguém desse uma olhado no programa que fiz com interface gráfica, estou viajando muito ou eh por ai?! Ah, e na utilização das classes e troca de mensagens tb.

O programa, basicamente faz o seguinte:

lê um arquivo txt, e divide ele com o numero de sequencias (grupo de caracteres iniciados por um caracter especial ‘>’) que o usuario quiser. As entradas saum: nome do arquivo e numero de sequencias.

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;

public class SplitFasta extends JFrame
	implements ActionListener
{
    // atributos
    private String fileName;
	private int numPack;
	private JLabel label1, label2;
	private JTextField input1, input2;
	private JButton botao1;
    
    
    // metodos
    public SplitFasta()
    {
        setTitle("Split Fasta");
        
        GridBagLayout layout = new GridBagLayout();
        GridBagConstraints c = new GridBagConstraints();
        c.anchor = GridBagConstraints.EAST; // alinhamento a direita
        
        getContentPane().setLayout(layout);
        
        label1 = new JLabel("File name:");
        input1 = new JTextField("",10);
        label2 = new JLabel("Number of sequences for pack:");
        input2 = new JTextField("",10);
        botao1 = new JButton("Run");
        
        // Configura as propridades de cada componente
        
        // Label 1
        c.gridy = 0; // primeira linha
        c.gridx = 0; // primeira coluna
        layout.setConstraints(label1, c);
        getContentPane().add(label1);
        
        // Input 1
        c.gridy = 0; // primeira linha
        c.gridx = 1; // segunda coluna
        layout.setConstraints(input1, c);
        getContentPane().add(input1);
        
        // Label 2
        c.gridy = 1; // segunda linha
        c.gridx = 0; // primeira coluna
        layout.setConstraints(label2, c);
        getContentPane().add(label2);
        
        // Input 2
        c.gridy = 1; // segunda linha
        c.gridx = 1; // segunda coluna
        layout.setConstraints(input2, c);
        getContentPane().add(input2);
        
        // Botao 1
        c.gridy = 2; // terceira linha
        c.gridx = 0; // primeira coluna
        layout.setConstraints(botao1, c);
        getContentPane().add(botao1);
        
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        pack();
        setVisible(true);
        
        // escutando o botao1
		botao1.addActionListener(this);
    }
    
    // tratando o evento botao1 acionado
	public void actionPerformed(ActionEvent event)
	{
		fileName = input1.getText().trim();
		numPack = Integer.parseInt(input2.getText().trim());
		// fasta class
		Fasta fasta = new Fasta(fileName, numPack);
	}
        
    public static void main(String args[])
    {
        new SplitFasta();
    }
}

class Fasta
{
	private String fileName; // recebe o nome do arquivo
	private int numPack; // recebe o numero de pacotes por arquivo
	private String linha = null; // para ler arquivo
	private int counter=0; // contador
	private int counterArq=1; // contador para nome dos arquivos gerados
	private String paraGravar = ""; // auxiliar que armazena conteudo a ser gravado
	
	public Fasta(String file, int pack)
	{
		fileName = file;
		numPack = pack;
		ReadFastaFile(fileName);
	}
	
	public void ReadFastaFile(String fileName)
	{
		try 
		{ 
			FileReader reader = new FileReader(fileName); 
			BufferedReader leitor = new BufferedReader(reader); 
			 
			while((linha = leitor.readLine()) != null) 
			{ 
				FastaScatter(linha);				
			}
			WriteFastaFile(paraGravar); // para gravar o ultimo do arquivo 
			leitor.close(); 
			reader.close(); 
		} 
	    catch (IOException e){ e.printStackTrace(); } 
	}
	
	public void WriteFastaFile(String gravar)
	{
		
		try
		{
			PrintWriter out = new PrintWriter(new
				FileWriter(counterArq+fileName));
				
			out.println(gravar);
			out.close();
		}
		catch (IOException exc) 
		{
			System.out.println("Erro de IO");
			exc.printStackTrace();
		}
		
		counterArq = counterArq+1; // contador para nomes dos arquivos novos
	}
	
	public void FastaScatter(String linhaLocal)
	{
		// recebe o 1o caracter da linha (para verificar se eh '>')
		char seqChar = linhaLocal.charAt(0);
		// recurso para transformar o char em string
		// para poder usar o método equals (objeto String)
		String sequenceStr = seqChar+"aki"; 
										
		if(sequenceStr.equals(">aki")) // inicio na seq '>xxx'
		{
			counter = counter+1;
			// se o arquivo tiver na seq seguinte
			// nao grava a linhaLocal pois a local vai ser '>xxx'
			if (counter == numPack+1)
			{ 
				paraGravar = paraGravar+"
";
				WriteFastaFile(paraGravar); // gravando soh o que estava
											// na var ateh agora
				paraGravar = linhaLocal+"
"; // preenchendo a var com o valor
											  // atual linhaLocal pois eh o 
											  // inicio do prox arquivo '>xxx'
				counter = 1; // coloca o contador em 1 pois a var linhaLocal
							 // esta com o inicio da proxima seq (prox pacote)				
			}
			// se nao grava a local tb pois vai ser parte da seq
			else { paraGravar = paraGravar+"
"+linhaLocal+"
"; }
		}
		else
		{
			paraGravar = paraGravar+linhaLocal;
		}
	}
}

Obrigado,
Rafael.

:scrambleup: Cara, não entendi seu código direito… Acho que talvez você tenha viajado um pouco nos métodos que utilizou. E outra coisa: você esqueceu de mencionar o que é que está acontecendo: o programa não está rodando, o resultado está saindo errado, essas coisas. Mas talvez eu possa sugerir algumas coisas:

:arrow: No método FastaScatter(String), talvez você possa usar o método split(String) da classe String (a partir do JRE1.4). Esse método divide uma String baseado em uma String passada como argumento (que no seu caso é um “>”, se não me engano.

:arrow: Usar o método show() da classe JFrame é uma boa pra visualizar a janela pela primeira vez (ao invés de setVisible(boolean).

:arrow: Use nomes de métodos começando por letras minúsculas: é uma forma de padronização e facilita sua vida na hora de debugar.

Não sei se ajudou… Explique melhor o seu problema e então, talvez, alguém aqui possa te ajudar…

Abração!

PS.: Cara, mande trechos de código menores… Esse seu assusta muita gente e muitos nem chegam a ler sua msg pra poder ajudar!

Valeu kra, vou dar uma olhada e alterar o que vc sugeriu.
[]'s
Rafael.