criei um JFrame com diversos componentes, os quais foram inicializados como atributos do frame, como segue:
public class CadastroProjeto extends JFrame {
private JPanel contentPane;
private final JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
private JTextField txtIdProjeto;
public JTextField txtNomeProjeto=new JTextField();
private JTextField txtDescricaoProjeto;
...........
O botão btnincluir possui um “evento clique esquerdo do mouse” que aciona o método “incluir”, como segue:
btnIncluir = new JButton("Incluir");
btnIncluir.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
CadastroProjeto cp = new CadastroProjeto();
try {
cp.incluir();
} catch (DAOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
O método incluir possui a seguinte estrutura:
public void incluir() throws DAOException, Exception
{
Projeto projeto = new Projeto();
int retornoIncluir=-1;
opcao="I";
CadastroProjeto cp = new CadastroProjeto();
if (cp.validaDados())
{
projeto=cp.preparaDados();
retornoIncluir=CadastroProjetoControleTela.incluir(projeto);
if (retornoIncluir==1)
Utilidade.mensagem("Inclusão efetuada com sucesso");
if (retornoIncluir==0)
Utilidade.mensagem("Projeto já está cadastrado");
if (retornoIncluir==2)
Utilidade.mensagem("Ocorreu erro de inclusão");
cp.limpaTela();
}
}
O método “validaDados()” do código anterior efetua algumas validações de entrada
do usuário, como segue um pequeno trecho:
public boolean validaDados()
{
CadastroProjeto cp = new CadastroProjeto();
boolean retorno=false;
String msg="";
try {
Utilidade.mensagem(msg);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
if (StringUtilidade.verificaStringVazia(this.txtNomeProjeto.getText().toString()))
{
msg+="informe o nome do projeto\n";
}
......
O código anterior faz uma verificação do conteúdo do componente “txtNomeProjeto” através de
if (StringUtilidade.verificaStringVazia(this.txtNomeProjeto.getText().toString()))
O método verificaStringVazia da classe StringUtilidade recebe a String do componente e avalia se é vazia ou não.
Só o método verificaStringVazia() pertence a uma outra classe. Os demais pertencem à classe do JFrame.
O PROBLEMA
O estranho é que está sempre recebendo um conteúdo vazio. Ou seja, o programa não envia o valor de getText().toString() para
o referido método. Antes o código era simplesmente getText() e também não funcionou. Estou usando o WindowBuilder no
Eclipse Juno.
O código de verificaStringVazia() é o seguinte:
public static boolean verificaStringVazia(String s)
{
boolean retorno=false;
int conta=0;
if (s.isEmpty())
conta++;
if (s.length()==0)
conta++;
if (conta!=0)
retorno=true;
return retorno;
}
O que está havendo? É problema no WindowBuilder? Esse código funciona em outra JFrame, mas não funciona aqui.
Espero que atendam a minha dúvida. Obrigado