Cadastro com campos em branco

eae galera, estou precisando de uma ajuda, é o seguinte, estou fazendo uma tela de cadastro, onde preciso que não seja obrigatório preencher todos os campos, mas se algum campo não for preenchido o programa da erro, ele da a mensagem de cadastrado porém não é inserido no banco. Primeiro é dado eu getText em todos os textFields e setados em um objeto cliente com os metodos gets e sets e então dpois é montado o sql para mandar para o banco de dados, abaixo esta o código, espero que alguém possa ajudar, grato!

btSalvar.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e) {
				if(tfNome.getText().isEmpty()){
					JOptionPane.showMessageDialog(null, "Informe o Nome");
				}
				else if(tfEndereco.getText().isEmpty()){
					JOptionPane.showMessageDialog(null, "Informe o Endereço");
				}
				else if(tfBairro.getText().isEmpty()){
					JOptionPane.showMessageDialog(null, "Informe o Bairro");
				}
				else if(cboxCidade.getSelectedItem().toString().isEmpty()){
					JOptionPane.showMessageDialog(null, "Informe a Cidade");
				}
				else {
					try{
						cliente = new Cliente();
						try{
							cliente.setStrCNPJ(ftfCNPJ.getText());
						}catch(Exception f){
							f.printStackTrace();
						}
						try{
							cliente.setStrInscEstadual(tfInsEst.getText());
						}catch(Exception f){
							f.printStackTrace();
						}
						try{
							cliente.setStrRazaoSocial(tfNome.getText());
						}catch(Exception f){
							f.printStackTrace();
						}
						try{
							cliente.setStrFantasia(tfFantasia.getText());
						}catch(Exception f){
							f.printStackTrace();
						}
						try{
							cliente.setStrEndereco(tfEndereco.getText());
						}catch(Exception f){
							f.printStackTrace();
						}
						try{
							cliente.setStrNumero(tfNum.getText());
						}catch(Exception f){
							f.printStackTrace();
						}
						try{
							cliente.setStrBairro(tfBairro.getText());
						}catch(Exception f){
							f.printStackTrace();
						}
						try{
							cliente.setStrComplemento(tfComplemento.getText());
						}catch (Exception f) {
							f.printStackTrace();
						}
						try{
							cliente.setStrCidade(cboxCidade.getSelectedItem().toString());
						}catch(Exception f){
							f.printStackTrace();
						}
						try{
							cliente.setStrUF(ftfUF.getText());
						}catch(Exception f){
							f.printStackTrace();
						}
						try{
							cliente.setStrCEP(ftfCEP.getText());
						}catch(Exception f){
							f.printStackTrace();
						}
						try{
							cliente.setStrDataNascimento(ftfNascimento.getText());
						}catch(Exception f){
							f.printStackTrace();
						}
						try{
							cliente.setStrTelefone(tfTelefone.getText());
						}catch(Exception f){
							f.printStackTrace();
						}
						try{
							cliente.setStrCelular(tfCelular.getText());
						}catch(Exception f){
							f.printStackTrace();
						}
						try{
							cliente.setStrEmail(tfEmail.getText());
						}catch(Exception f){
							f.printStackTrace();
						}
						try{
							cliente.setStrCPF(ftfCPF.getText());
						}catch(Exception f){
							f.printStackTrace();
						}
						try{
							cliente.setStrRG(tfRG.getText());
						}catch(Exception f){
							f.printStackTrace();
						}
						try{
							cliente.setStrOrgaoEmissor(tfSSP.getText());
						}catch(Exception f){
							f.printStackTrace();
						}
						try{
							cliente.setStrRGUF(ftfOE.getText());
						}catch(Exception f){
							f.printStackTrace();
						}
						try{
							cliente.setStrObservacao(taArea.getText());
						}catch(Exception f){
							f.printStackTrace();
						}
						try{
							if(rbFisica.isSelected()){
								cliente.setStrTipoPessoa("FISICA");
							}
							else if(rbJuridica.isSelected()){
								cliente.setStrTipoPessoa("JURIDICA");
							}}catch(Exception f){
								f.printStackTrace();
							}
							
							Conexao c = new Conexao();
							Connection conn = c.criarConexao();

							String sql = "INSERT INTO cliente(tipo_pessoa,cnpj,insc_estadual,razao_social,fantasia,endereco,numero,bairro," +
							"complemento,cidade,uf,cep,data_nascimento,telefone,celular,email,cpf,rg,org_emissor,uf_rg,renda,observacao)" +
							"values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
							PreparedStatement ps = conn.prepareStatement(sql); //prepara o comando sql acima

							try{
								ps.setString(1, cliente.getStrTipoPessoa());
							}catch(Exception f){
								f.printStackTrace();
							}
							try{
								ps.setString(2, cliente.getStrCNPJ());
							}catch(Exception f){
								f.printStackTrace();
							}
							try{
								ps.setString(3, cliente.getStrInscEstadual());
							}catch(Exception f){
								f.printStackTrace();
							}
							try{
								ps.setString(4, cliente.getStrRazaoSocial());
							}catch(Exception f){
								f.printStackTrace();
							}
							try{
								ps.setString(5, cliente.getStrFantasia());
							}catch(Exception f){
								f.printStackTrace();
							}
							try{
								ps.setString(6, cliente.getStrEndereco());
							}catch(Exception f){
								f.printStackTrace();
							}
							try{
								ps.setString(7, cliente.getStrNumero());
							}catch(Exception f){
								f.printStackTrace();
							}
							try{
								ps.setString(8, cliente.getStrBairro());
							}catch(Exception f){
								f.printStackTrace();
							}
							try{
								ps.setString(9, cliente.getStrComplemento());
							}catch(Exception f){
								f.printStackTrace();
							}
							try{
								ps.setString(10, cliente.getStrCidade());
							}catch(Exception f){
								f.printStackTrace();
							}
							try{
								ps.setString(11, cliente.getStrUF());
							}catch(Exception f){
								f.printStackTrace();
							}
							try{
								ps.setString(12, cliente.getStrCEP());
							}catch(Exception f){
								f.printStackTrace();
							}

							try{
								SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");//formata a data 
								Date nascimento = sdf.parse(cliente.getStrDataNascimento());							
								ps.setDate(13, new java.sql.Date(nascimento.getTime()));
							}catch(Exception f){
								f.printStackTrace();
							}
							try{
								ps.setString(14, cliente.getStrTelefone());
							}catch(Exception f){
								f.printStackTrace();
							}
							try{
								ps.setString(15, cliente.getStrCelular());
							}catch(Exception f){
								f.printStackTrace();
							}
							try{
								ps.setString(16, cliente.getStrEmail());
							}catch(Exception f){
								f.printStackTrace();
							}
							try{
								ps.setString(17, cliente.getStrCPF());
							}catch(Exception f){
								f.printStackTrace();
							}
							try{
								ps.setString(18, cliente.getStrRG());
							}catch(Exception f){
								f.printStackTrace();
							}
							try{
								ps.setString(19, cliente.getStrOrgaoEmissor());
							}catch(Exception f){
								f.printStackTrace();
							}
							try{
								ps.setString(20, cliente.getStrRGUF());
							}catch(Exception f){
								f.printStackTrace();
							}
							try{
								ps.setDouble(21, cliente.getDoRenda());
							}catch(Exception f){
								f.printStackTrace();
							}
							try{
								ps.setString(22, cliente.getStrObservacao());
							}catch(Exception f){
								f.printStackTrace();
							}
							try{
								ps.executeUpdate();
							}catch(Exception f){
								f.printStackTrace();
							}

							JOptionPane.showMessageDialog(null, "Cliente cadastrado com sucesso");		
							janela.dispose();
					}
					catch(Exception f){
						f.printStackTrace();
					}
				}
			}	
		});

Não entendi direito qual é o seu problema. O código funciona - ou deveria funcionar (não testei). Só acho que você poderia reduzir o número de try/catchs colocando um geral em volta de todos os setStr*… e um ao redor de todos os ps.set*… Assim fica um pouco mais legível o código.
Talvez, um try/catch ao redor de tudo já seria suficiente já que você não está especificando o tipo de Exception que está tratando.
Quanto ao chamar os set* e validar os dados dos campos, não vejo uma solução simples de fazer isso.

A sua mensagem vai mesmo ser exibida de qualque jeito no ponto onde ela está. Seria mais útil colocá-la depois do ps.executeUpdate();
Dá até pra verificar se o registro foi mesmo inserido, pegando o retorno desse método.

Sobre não ter inserido no banco, o printStackTrace() que você colocou no catch depois do ps.executeUpdate() deve estar mostrando o erro que acontece, não? Verifique também se algum dos campos que está deixando em branco está definido como not null no banco.

E siga também o conselho do visola que vai deixar teu código mais clean