Código dividido em métodos

2 respostas
java
Rebeca_Nonato

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.

2 Respostas

staroski

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.

Rebeca_Nonato

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());
	}

}
Criado 4 de setembro de 2018
Ultima resposta 7 de set. de 2018
Respostas 2
Participantes 2