Código dividido em métodos

Pessoal, estou com um código de uma Janela.
Possui 3 abas (Cadastro, Listagem e consulta).

está nesse link:

O problema que o código todo está sendo chamado pelo MainFrame().

Eu queria dividir ele em pelo menos 3 métodos, Alguém sabe como posso fazer? Se tem como?
Como faz?

Obrigada.

Pq 3 métodos?

Você já sabe declarar métodos, pois seu código tem 2: main e initGui.
Identifique trechos de código que realizam operações específicas e jogue esses códigos em métodos distintos.

Procure manter métodos com no máximo 20~30 linhas, mais que isso é raro.

Crie variáveis de instância somente para o que precisa ser da instância, a maioria dos seus componentes visuais podem ser variáveis locais.

Os códigos executados pelos seus listeners podem ser implementados em métodos específicos, com nomes sugestivos.

Sim, mas estou com um problema…
Tentei fazer desta forma, mas a janela, é uma variável que deverá ser vista por todo os passos(Cadastro e Listagem), Como consigo fazer isso?
O tabbedPane é único para todos os métodos

public MainFrame() {
	super();
	initGUI();
	cadastro();
	listagem();

}// Fim do Public MainFrame

private void initGUI() {
	setTitle("Cliente");
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	setBounds(100, 100, 727, 377);
	contentPane = new JPanel();
	contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
	contentPane.setLayout(new BorderLayout(0, 0));
	setContentPane(contentPane);

	JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
	contentPane.add(tabbedPane, BorderLayout.CENTER);
	
	tabbedPane.addTab("Cadastro", null, panelCadastro, null); // aqui está dando erro
	
	tabbedPane.addTab("Listagem", null, panelListagem, null); // aqui está dando erro
	tabbedPane.setEnabledAt(1, true);
}


// cadastro

private void cadastro() {
	JPanel panelCadastro = new JPanel();

	JLabel lblNome = new JLabel("Nome: ");

	JLabel lblCpf = new JLabel("Cpf:");

	JLabel lblEndereo = new JLabel("Endere\u00E7o:");

	JLabel lblSexo = new JLabel("Sexo:");

	JLabel lblDtNasc = new JLabel("Dt. Nasc:");

	txtEndereco = new JTextField();
	txtEndereco.setColumns(10);

	txtNome = new JTextField();
	txtNome.setColumns(10);

	txtCpf = new JTextField();
	txtCpf.setColumns(10);

	txtDtNasc = new JTextField();
	txtDtNasc.setColumns(10);

	JRadioButton rdbtnMasculino = new JRadioButton("Masculino");
	rdbtnMasculino.setSelected(true);
	buttonGroup.add(rdbtnMasculino);

	JRadioButton rdbtnFeminino = new JRadioButton("Feminino");
	rdbtnFeminino.setSelected(true);
	buttonGroup.add(rdbtnFeminino);

	JButton btnCadastrar = new JButton("Cadastrar");
	btnCadastrar.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent e) {

			try {
				PessoaDTO pessoaDTO = new PessoaDTO();
				PessoaBO pessoaBO = new PessoaBO();

				String nome = txtNome.getText();
				String cpf = txtCpf.getText();
				String endereco = txtEndereco.getText();
				String nasc = txtDtNasc.getText();

				pessoaBO.validaNome(nome);
				pessoaBO.validaCpf(cpf);
				pessoaBO.validaEndereco(endereco);
				pessoaBO.validaDtNasc(nasc);

				pessoaDTO.setNome(nome);
				pessoaDTO.setCpf(Long.parseLong(cpf));
				pessoaDTO.setEndereco(endereco);

				try {
					pessoaDTO.setDtNasc(dateFormat.parse(nasc));
				} catch (ParseException e1) {
					e1.printStackTrace();
				}

				char sexo = rdbtnMasculino.isSelected() ? 'M' : 'F';
				pessoaDTO.setSexo(sexo);
				pessoaBO.cadastrar(pessoaDTO);

				MensagensUtil.addMsg(MainFrame.this, "Cadastro Efetuado com sucesso");
				MainFrame.this.dispose();
				main(null);

			} catch (Exception e1) {
				e1.printStackTrace();
				MensagensUtil.addMsg(MainFrame.this, e1.getMessage());
			}

		}

	});

	JButton btnLimpar = new JButton("Limpar");
	btnLimpar.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent arg0) {
			txtNome.setText("");
			txtEndereco.setText("");
			txtCpf.setText("");
			txtDtNasc.setText("");
			rdbtnMasculino.setSelected(true);
		}
	});

	GroupLayout gl_panelCadastro = new GroupLayout(panelCadastro);
	gl_panelCadastro.setHorizontalGroup(gl_panelCadastro.createParallelGroup(Alignment.LEADING)
			.addGroup(gl_panelCadastro.createSequentialGroup().addContainerGap().addGroup(gl_panelCadastro
					.createParallelGroup(Alignment.LEADING)
					.addGroup(gl_panelCadastro.createSequentialGroup()
							.addComponent(lblNome, GroupLayout.PREFERRED_SIZE, 86, GroupLayout.PREFERRED_SIZE)
							.addPreferredGap(ComponentPlacement.RELATED)
							.addComponent(txtNome, GroupLayout.PREFERRED_SIZE, 287, GroupLayout.PREFERRED_SIZE))
					.addGroup(gl_panelCadastro.createSequentialGroup()
							.addComponent(lblCpf, GroupLayout.PREFERRED_SIZE, 86, GroupLayout.PREFERRED_SIZE)
							.addPreferredGap(ComponentPlacement.RELATED)
							.addComponent(txtCpf, GroupLayout.PREFERRED_SIZE, 287, GroupLayout.PREFERRED_SIZE))
					.addGroup(gl_panelCadastro.createSequentialGroup()
							.addComponent(lblEndereo, GroupLayout.PREFERRED_SIZE, 86, GroupLayout.PREFERRED_SIZE)
							.addPreferredGap(ComponentPlacement.RELATED)
							.addComponent(txtEndereco, GroupLayout.PREFERRED_SIZE, 287, GroupLayout.PREFERRED_SIZE))
					.addGroup(gl_panelCadastro.createSequentialGroup()
							.addComponent(lblSexo, GroupLayout.PREFERRED_SIZE, 86, GroupLayout.PREFERRED_SIZE)
							.addPreferredGap(ComponentPlacement.UNRELATED).addComponent(rdbtnMasculino).addGap(29)
							.addComponent(rdbtnFeminino, GroupLayout.PREFERRED_SIZE, 101,
									GroupLayout.PREFERRED_SIZE))
					.addGroup(gl_panelCadastro.createSequentialGroup()
							.addComponent(lblDtNasc, GroupLayout.PREFERRED_SIZE, 86, GroupLayout.PREFERRED_SIZE)
							.addPreferredGap(ComponentPlacement.RELATED)
							.addComponent(txtDtNasc, GroupLayout.PREFERRED_SIZE, 287, GroupLayout.PREFERRED_SIZE)))
					.addContainerGap(32, Short.MAX_VALUE))
			.addGroup(Alignment.TRAILING,
					gl_panelCadastro.createSequentialGroup().addContainerGap(195, Short.MAX_VALUE)
							.addComponent(btnCadastrar).addGap(18)
							.addComponent(btnLimpar, GroupLayout.PREFERRED_SIZE, 81, GroupLayout.PREFERRED_SIZE)
							.addGap(36)));
	gl_panelCadastro
			.setVerticalGroup(
					gl_panelCadastro.createParallelGroup(Alignment.LEADING)
							.addGroup(gl_panelCadastro.createSequentialGroup().addGap(23)
									.addGroup(gl_panelCadastro.createParallelGroup(Alignment.BASELINE)
											.addComponent(lblNome).addComponent(txtNome, GroupLayout.PREFERRED_SIZE,
													GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
									.addPreferredGap(ComponentPlacement.RELATED)
									.addGroup(gl_panelCadastro.createParallelGroup(Alignment.BASELINE)
											.addComponent(lblCpf).addComponent(txtCpf, GroupLayout.PREFERRED_SIZE,
													GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
									.addPreferredGap(ComponentPlacement.RELATED)
									.addGroup(gl_panelCadastro.createParallelGroup(Alignment.BASELINE)
											.addComponent(lblEndereo).addComponent(txtEndereco,
													GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE,
													GroupLayout.PREFERRED_SIZE))
									.addPreferredGap(ComponentPlacement.RELATED)
									.addGroup(gl_panelCadastro.createParallelGroup(Alignment.BASELINE)
											.addComponent(lblSexo).addComponent(rdbtnMasculino)
											.addComponent(rdbtnFeminino))
									.addPreferredGap(ComponentPlacement.UNRELATED)
									.addGroup(gl_panelCadastro.createParallelGroup(Alignment.BASELINE)
											.addComponent(lblDtNasc)
											.addComponent(txtDtNasc, GroupLayout.PREFERRED_SIZE,
													GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
									.addPreferredGap(ComponentPlacement.RELATED, 42, Short.MAX_VALUE)
									.addGroup(gl_panelCadastro.createParallelGroup(Alignment.BASELINE)
											.addComponent(btnCadastrar).addComponent(btnLimpar))
									.addContainerGap()));
	panelCadastro.setLayout(gl_panelCadastro);
}

// listagem

private void listagem() {
	JPanel panelListagem = new JPanel();
	

	JScrollPane scrollListagem = new JScrollPane();

	JButton btnDeletar = new JButton("Deletar Tudo");
	btnDeletar.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent arg0) {

			// deletar
			PessoaBO pessoaBO = new PessoaBO();
			try {
				int resp = JOptionPane.showConfirmDialog(MainFrame.this, "Deseja Realmente Deletar TUDO?");
				if (resp == 0) {
					pessoaBO.removeTudo();
					MensagensUtil.addMsg(MainFrame.this, "Pessoas removidas com sucesso!!!");
					MainFrame.this.dispose();
					main(null);
				}

			} catch (NegocioException e) {
				e.printStackTrace();
				MensagensUtil.addMsg(MainFrame.this, e.getMessage());
			}

		}
	});
	GroupLayout gl_panelListagem = new GroupLayout(panelListagem);
	gl_panelListagem
			.setHorizontalGroup(gl_panelListagem.createParallelGroup(Alignment.LEADING)
					.addGroup(gl_panelListagem.createSequentialGroup().addContainerGap()
							.addGroup(gl_panelListagem.createParallelGroup(Alignment.LEADING)
									.addGroup(gl_panelListagem.createSequentialGroup()
											.addComponent(scrollListagem, GroupLayout.DEFAULT_SIZE, 676,
													Short.MAX_VALUE)
											.addContainerGap())
									.addGroup(Alignment.TRAILING,
											gl_panelListagem.createSequentialGroup().addComponent(btnDeletar,
													GroupLayout.PREFERRED_SIZE, 108, GroupLayout.PREFERRED_SIZE)
													.addGap(30)))));
	gl_panelListagem.setVerticalGroup(gl_panelListagem.createParallelGroup(Alignment.LEADING)
			.addGroup(gl_panelListagem.createSequentialGroup().addContainerGap()
					.addComponent(scrollListagem, GroupLayout.PREFERRED_SIZE, 251, GroupLayout.PREFERRED_SIZE)
					.addPreferredGap(ComponentPlacement.UNRELATED).addComponent(btnDeletar)
					.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)));

	PessoaBO pessoaBO = new PessoaBO();
	String[][] lista;
	try {
		lista = pessoaBO.listagem(idsPessoas);

		tableListagem = new JTable();
		tableListagem.setModel(new DefaultTableModel(lista,
				new String[] { "Id", "Nome", "CPF", "Endere\u00E7o", "Sexo", "Dt. Nasc.", "", "" }) {
			private static final long serialVersionUID = -545467246473218452L;
			boolean[] columnEditables = new boolean[] { false, false, false, false, false, false, true, true };

			public boolean isCellEditable(int row, int column) {
				return columnEditables[column];
			}
		});
		scrollListagem.setViewportView(tableListagem);
		panelListagem.setLayout(gl_panelListagem);

		Action actionDelecao = new AbstractAction() {
			private static final long serialVersionUID = -421951775656187572L;

			@Override
			public void actionPerformed(ActionEvent actionEvent) {
				int resp = JOptionPane.showConfirmDialog(MainFrame.this, "Deseja realmente deletar essa pessoa?");
				if (resp == 0) {
					JTable table = (JTable) actionEvent.getSource();
					int linha = Integer.parseInt(actionEvent.getActionCommand());
					((DefaultTableModel) table.getModel()).removeRow(linha);
					try {
						pessoaBO.removePessoa(idsPessoas.get(linha));
						idsPessoas.remove(linha);
						MensagensUtil.addMsg(MainFrame.this, "Removeu com Sucesso");
					} catch (NegocioException e) {
						e.printStackTrace();
						MensagensUtil.addMsg(MainFrame.this, e.getMessage());
					}

				}
			}
		};

		Action actionEdicao = new AbstractAction() {
			private static final long serialVersionUID = 205145605483315477L;

			@Override
			public void actionPerformed(ActionEvent actionEvent) {

			}
		};

		ButtonColumn buttonColumnDelecao = new ButtonColumn(tableListagem, actionDelecao, 7);
		ButtonColumn buttonColumnEdicao = new ButtonColumn(tableListagem, actionEdicao, 6);
		buttonColumnDelecao.setMnemonic(KeyEvent.VK_D);
		buttonColumnEdicao.setMnemonic(KeyEvent.VK_E);

	} catch (NegocioException e1) {
		e1.printStackTrace();
		MensagensUtil.addMsg(MainFrame.this, e1.getMessage());
	}

}