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:
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
Exatamente isso.
Agora, uma pergunta: é impressão minha ou você está usando AWT para construir a interface gráfica??
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.
M
marcobiscaro2112
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.
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).
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.
Não entendi pq vc falou que dá pra usar JOptionPane (que é Swing, com AWT). É possível claro, mas tem vários efeitos colaterais.
M
marcobiscaro2112
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.
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).
Esse é meu medo…
rael_gc
Entendi seu ponto de vista, e faz sentido.
Sobre o jtextfield, você está certo: realmente não retorna null.
Dil14
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
Isso mesmo Volnei, brigadão!
Dil14
marcobiscaro2112:
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
Exatamente isso.
Agora, uma pergunta: é impressão minha ou você está usando AWT para construir a interface gráfica??
É verdade, estou utilizando AWT. Que “efeitos colaterais” poderiam ocorrer?!
Abraço.
Dil14
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).
Não entendi. :roll:
M
marcobiscaro2112
Dil14:
marcobiscaro2112:
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
Exatamente isso.
Agora, uma pergunta: é impressão minha ou você está usando AWT para construir a interface gráfica??
É verdade, estou utilizando AWT. Que “efeitos colaterais” poderiam ocorrer?!
Abraço.
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.
M
marcobiscaro2112
Dil14:
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).
Não entendi. :roll:
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).
rael_gc
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.
Como o amigo acima falou, use Swing ou SWT.
rael_gc
Além disso, se vc misturar SWT e AWT, com certeza terá problemas (não apenas efeitos colaterais) no Linux/GTK.
Dil14
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).