Estou desenvolvendo um programinha acadêmico onde tenho que realizar a pesquisa de alguns dados em um banco de dados.
Quanto à conexão em JDBC td bem, a minha dúvida é a seguinte:
Existe uma janela onde pode-se realizar a pesquisa de uma peça (POR NOME ou POR CÓDIGO) que está cadastrada no Banco de dados, como segue:
A partir daí, eu gostaria de tratar as informações digitadas pelo usuário, como segue:
private void pesquisaMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_pesquisaMouseClicked
if ((textoNome.getText() != null) && (textoCodigo.getText() == null)){
//Pesquisa por nome
}
else if ((textoNome.getText() == null) && (textoCodigo.getText() != null)){
//Pesquisa por código
}
else if ((textoNome.getText() != null) && (textoCodigo.getText() != null)){
//Pesquisa por código
}
else if (((textoNome.getText())!= null) && ((textoCodigo.getText()) == null)) {
JOptionPane.showMessageDialog(null, "Digite alguma informação");
}
[b]O problema é que quando clico no botão “Pesquisar”, nada acontece.
Peço, por favor, que me digam se há algum problema na lógica mostrada no código acima.
Uma coisa que você está fazendo e é estranha, é que você deve usar ActionListener e não um evento de Mouse para quando alguém clicar no botão (ou apertar a barra de espaços no mesmo quando ele estiver selecionado).
E ainda: se o seu field não tem valor padrão algum, ele vai retornar null. E como você colocou a checagem de null em todos os IFs, nunca vai acontecer nada.
E respondendo o amigo que perguntou sobre AWT: ele não está usando AWT, afinal dá pra ver o JOptionPane no código. Se sua pergunta foi devido à aparência, ele deve ter pedido pro Swing assumir o LookAndFeel default do sistema operacional.
[quote=rael_gc]Uma coisa que você está fazendo e é estranha, é que você deve usar ActionListener e não um evento de Mouse para quando alguém clicar no botão (ou apertar a barra de espaços no mesmo quando ele estiver selecionado).
E ainda: se o seu field não tem valor padrão algum, ele vai retornar null. E como você colocou a checagem de null em todos os IFs, nunca vai acontecer nada.
E respondendo o amigo que perguntou sobre AWT: ele não está usando AWT, afinal dá pra ver o JOptionPane no código. Se sua pergunta foi devido à aparência, ele deve ter pedido pro Swing assumir o LookAndFeel default do sistema operacional.
[/quote]
A parte do ActionListener é verdade.
Mas se o TextField não tem texto ele retorna uma String vazia ("") e nunca null.
E, não, não é o LookAndFeel default pois se fosse o botão seria arredondado. E usar AWT para as janelas não quer dizer que não possamos chamar um JOptionPane (e acho que é isso que ele está fazendo).
Não entendi pq o botão deveria ser arredondado. Existem várias versões de Windows com lookandfeel com botão quadrado. Anyway, o fato dele usar o lookandfeel do sistema foi apenas um chute.
Não entendi pq vc falou que dá pra usar JOptionPane (que é Swing, com AWT). É possível claro, mas tem vários efeitos colaterais.
[quote=rael_gc]Não entendi pq o botão deveria ser arredondado. Existem várias versões de Windows com lookandfeel com botão quadrado. Anyway, o fato dele usar o lookandfeel do sistema foi apenas um chute.
[/quote]
Pela barra de título o sistema é Windows XP com a aparência padrão. Logo, o look and feel do sistema terá a aparência do Windows XP (botões arredondados).
[quote=rael_gc]Uma coisa que você está fazendo e é estranha, é que você deve usar ActionListener e não um evento de Mouse para quando alguém clicar no botão (ou apertar a barra de espaços no mesmo quando ele estiver selecionado).
[/quote]
[quote=Dil14][quote=marcobiscaro2112][quote=volnei]O método getText() no JTextField nunca retorna null, se vazio ele retornará a string vazia “”.
Troque o código xxxxx.getText() == null por xxxxx.getText().isEmpty()
Abraço[/quote]
Exatamente isso.
Agora, uma pergunta: é impressão minha ou você está usando AWT para construir a interface gráfica??[/quote]
É verdade, estou utilizando AWT. Que “efeitos colaterais” poderiam ocorrer?!
Abraço.[/quote]
Na verdade não há “efeitos colaterais”. A resposta para a pergunta: “Meu programa funcionará?” é sim. Mas existem diversas peculiaridades que fazem muito mais viável o uso de Swing (parece seu caso) ou, às vezes, SWT. Mas AWT não!
Um pouco mais sobre isso aqui, logo no primeiro tópico.
[quote=Dil14][quote=rael_gc]Uma coisa que você está fazendo e é estranha, é que você deve usar ActionListener e não um evento de Mouse para quando alguém clicar no botão (ou apertar a barra de espaços no mesmo quando ele estiver selecionado).
[/quote]
Não entendi. :roll: [/quote]
Acontece o seguinte: você adicionou um MouseListener no seu botão. Mas e se o usuário usar o teclado (com TAB para alternar o foco e espaço para pressionar)? Ele seleciona o foco no seu botão e nada vai acontecer! Isso porque, apesar de o botão ter sido pressionado, ele não foi clicado.
Para evitar esse tipo de problema, existe uma interface chamada ActionListener que reage a eventos de ação. No caso do botão, quando ele for pressionado (não importa se com o mouse, com o teclado, ou até de outra forma).
Me referi a “efeitos colaterais” no sentido de que é preciso muitas vezes recorrer a workarounds pra alguns componentes AWT funcionarem com containers Swing. Sendo que não há motivos, em uma aplicaçãozinha CRUD, pra misturar ambos.
[quote]Acontece o seguinte: você adicionou um MouseListener no seu botão. Mas e se o usuário usar o teclado (com TAB para alternar o foco e espaço para pressionar)? Ele seleciona o foco no seu botão e nada vai acontecer! Isso porque, apesar de o botão ter sido pressionado, ele não foi clicado.
Para evitar esse tipo de problema, existe uma interface chamada ActionListener que reage a eventos de ação. No caso do botão, quando ele for pressionado (não importa se com o mouse, com o teclado, ou até de outra forma). [/quote]