Bom dia pessoal,
Sou muito novo em Java e gostaria de algumas dicas!
No meu trabalho do TCC estou criando um código e estou com um problema.
Tenho uma classe em Java que faz a seguinte operação:
Tenho um jtextfield aonde o usuário ira digitar um código, e ao dar um enter o mesmo ira fazer uma consulta no banco mysql,
para ver se este código existe em uma determinada tabela. Até ai tudo normal funcionando!
Porém eu gostaria de adicionar uma função de tempo, para que de tempo em tempo por exemplo 20 segundos ele tecle este “enter” no jtextfield para fazer esta consulta.
Ou seja não seria necessário a pessoa teclar “enter” após digitar, pois de tempo em tempo ele realizaria esta consulta.
Tentei utilizar um exemplo de util.Timer e util.TimerTask porem sem sucesso.
Segue codigo da classe:
package project;
import java.io.File;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JOptionPane;
public class Layout extends javax.swing.JFrame {
public Layout() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel = new javax.swing.JPanel();
jLabel = new javax.swing.JLabel();
TextField = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("Assento Certo");
setIconImages(null);
jLabel.setText("QR Reader");
TextField.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
TextFieldActionPerformed(evt);
}
});
jLabel1.setFont(new java.awt.Font("Times New Roman", 0, 11)); // NOI18N
jLabel1.setText("Obs: Não fechar a aplicação!");
javax.swing.GroupLayout jPanelLayout = new javax.swing.GroupLayout(jPanel);
jPanel.setLayout(jPanelLayout);
jPanelLayout.setHorizontalGroup(
jPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanelLayout.createSequentialGroup()
.addGroup(jPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanelLayout.createSequentialGroup()
.addGap(113, 113, 113)
.addComponent(jLabel)
.addGap(0, 0, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelLayout.createSequentialGroup()
.addContainerGap(26, Short.MAX_VALUE)
.addGroup(jPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addComponent(TextField, javax.swing.GroupLayout.PREFERRED_SIZE, 254, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addContainerGap())
);
jPanelLayout.setVerticalGroup(
jPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanelLayout.createSequentialGroup()
.addComponent(jLabel)
.addGap(18, 18, 18)
.addComponent(TextField, javax.swing.GroupLayout.PREFERRED_SIZE, 34, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jLabel1))
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
pack();
setLocationRelativeTo(null);
}// </editor-fold>
private void TextFieldActionPerformed(java.awt.event.ActionEvent evt) {
String buscacod = TextField.getText();
TextField.setText("");
//Conecta no banco com a classe ConexaoMysql
Connection con = new ConexaoMySQL().getConexaoMySQL();
//Realiza consulta no banco
try {
String sql = "";
Statement stmt;
stmt = con.prepareStatement(sql);
//Variavel buscacod recebe valor do Text Fild e compara com valores do banco;
ResultSet rs = stmt.executeQuery("Select cod_num from codigos where cod_num = '" + buscacod + "'" );
if (rs.next()){
JOptionPane.showMessageDialog(null,"Liberado");
java.awt.Desktop.getDesktop().open( new File( "C:\\Code\\OK.txt" ) );
}
else{
JOptionPane.showMessageDialog(null,"Codigo Invalido");
}
}
catch(Exception e){
System.out.println(e.getMessage());
}
}
//fim action listener.
// metodo main
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Layout().setVisible(true);
}
});
} //fim main
// Variables declaration - do not modify
private javax.swing.JTextField TextField;
private javax.swing.JLabel jLabel;
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel jPanel;
// End of variables declaration
} // fim da classe
Desde ja Agradeço pessoal!

