Olá… bem, eu to fazendo um cronometro que retrossede, mas o problemas é que
eu não sei fazer ele para quando a hora, os minutos e os segundo atingirem zero.
Alguém poderia me ajudar?
Esse é o código da tela principal do cronometro.
public class TelaMain extends javax.swing.JFrame {
private static int s = 0;
private static int m = 0;
private static int h = 0;
boolean estado = true;
private int mpx = 0;
private int mpy = 0;
static Cronometro c = new Cronometro();
public TelaMain() {
initComponents();
parar.setEnabled(!estado);
resetar.setEnabled(!estado);
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel2 = new javax.swing.JPanel();
exit = new javax.swing.JLabel();
JLabel1 = new javax.swing.JLabel();
mini1 = new javax.swing.JButton();
jPanel3 = new javax.swing.JPanel();
tabela = new javax.swing.JButton();
sortear = new javax.swing.JButton();
lb3 = new javax.swing.JLabel();
lb1 = new javax.swing.JLabel();
lb2 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
jLabel5 = new javax.swing.JLabel();
resetar = new javax.swing.JButton();
parar = new javax.swing.JButton();
iniciar = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
jButton2 = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setUndecorated(true);
setResizable(false);
jPanel2.setBackground(new java.awt.Color(0, 153, 0));
jPanel2.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(3, 115, 3)));
jPanel2.setMinimumSize(new java.awt.Dimension(1000, 35));
jPanel2.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
public void mouseDragged(java.awt.event.MouseEvent evt) {
jPanel2MouseDragged(evt);
}
});
jPanel2.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(java.awt.event.MouseEvent evt) {
jPanel2MousePressed(evt);
}
});
exit.setFont(new java.awt.Font("Arial Black", 0, 24)); // NOI18N
exit.setForeground(new java.awt.Color(240, 240, 240));
exit.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/close.png"))); // NOI18N
exit.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
exit.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
exitMouseClicked(evt);
}
});
JLabel1.setFont(new java.awt.Font("Agency FB", 0, 24)); // NOI18N
JLabel1.setText("CronometroANM");
mini1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/minimize.png"))); // NOI18N
mini1.setContentAreaFilled(false);
mini1.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
mini1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
mini1ActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
jPanel2.setLayout(jPanel2Layout);
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addComponent(JLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 796, Short.MAX_VALUE)
.addComponent(mini1, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(exit, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE))
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(exit, javax.swing.GroupLayout.DEFAULT_SIZE, 36, Short.MAX_VALUE)
.addComponent(JLabel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(jPanel2Layout.createSequentialGroup()
.addContainerGap()
.addComponent(mini1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))
);
getContentPane().add(jPanel2, java.awt.BorderLayout.PAGE_START);
jPanel3.setBackground(new java.awt.Color(255, 255, 255));
jPanel3.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(3, 115, 3)));
tabela.setBackground(new java.awt.Color(0, 153, 0));
tabela.setFont(new java.awt.Font("Arial", 0, 24)); // NOI18N
tabela.setText("PROJETOS");
tabela.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
tabela.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
tabelaActionPerformed(evt);
}
});
sortear.setBackground(new java.awt.Color(0, 153, 0));
sortear.setFont(new java.awt.Font("Arial", 0, 24)); // NOI18N
sortear.setText("SORTEAR");
sortear.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
sortear.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
sortearActionPerformed(evt);
}
});
lb3.setFont(new java.awt.Font("Agency FB", 0, 102)); // NOI18N
lb3.setText("00");
lb1.setFont(new java.awt.Font("Agency FB", 0, 102)); // NOI18N
lb1.setText("00");
lb2.setFont(new java.awt.Font("Agency FB", 0, 102)); // NOI18N
lb2.setText("00");
jLabel4.setFont(new java.awt.Font("Agency FB", 0, 102)); // NOI18N
jLabel4.setText(":");
jLabel5.setFont(new java.awt.Font("Agency FB", 0, 102)); // NOI18N
jLabel5.setText(":");
resetar.setBackground(new java.awt.Color(0, 153, 0));
resetar.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N
resetar.setText("RESETAR");
resetar.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
resetar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
resetarActionPerformed(evt);
}
});
parar.setBackground(new java.awt.Color(0, 153, 0));
parar.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N
parar.setText("PARAR");
parar.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
parar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
pararActionPerformed(evt);
}
});
iniciar.setBackground(new java.awt.Color(0, 153, 0));
iniciar.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N
iniciar.setText("INICIAR");
iniciar.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
iniciar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
iniciarActionPerformed(evt);
}
});
jLabel1.setBackground(new java.awt.Color(204, 204, 204));
jLabel1.setFont(new java.awt.Font("Agency FB", 0, 24)); // NOI18N
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(240, 240, 240)));
jLabel1.setMinimumSize(new java.awt.Dimension(73, 35));
jLabel1.setOpaque(true);
jLabel1.setPreferredSize(new java.awt.Dimension(73, 35));
jButton2.setBackground(new java.awt.Color(255, 255, 255));
jButton2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/images/document (3).png"))); // NOI18N
jButton2.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
jButton2.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jButton2MouseClicked(evt);
}
});
jButton2.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap(242, Short.MAX_VALUE)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
.addComponent(sortear, javax.swing.GroupLayout.PREFERRED_SIZE, 187, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(113, 113, 113)
.addComponent(tabela, javax.swing.GroupLayout.PREFERRED_SIZE, 185, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(250, 250, 250))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
.addComponent(lb1)
.addGap(18, 18, 18)
.addComponent(jLabel4)
.addGap(18, 18, 18)
.addComponent(lb2)
.addGap(12, 12, 12)
.addComponent(jLabel5)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(lb3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(283, 283, 283))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
.addComponent(iniciar)
.addGap(37, 37, 37)
.addComponent(parar, javax.swing.GroupLayout.PREFERRED_SIZE, 69, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(34, 34, 34)
.addComponent(resetar)
.addGap(344, 344, 344))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 518, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(238, 238, 238))))
);
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addGap(122, 122, 122)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(lb3)
.addComponent(jLabel5)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(lb1)
.addComponent(lb2))))
.addGroup(jPanel3Layout.createSequentialGroup()
.addGap(196, 196, 196)
.addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(resetar)
.addComponent(parar)
.addComponent(iniciar))
.addGap(27, 27, 27)
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 35, Short.MAX_VALUE)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(sortear, javax.swing.GroupLayout.PREFERRED_SIZE, 77, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tabela, javax.swing.GroupLayout.PREFERRED_SIZE, 77, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(108, 108, 108))
);
getContentPane().add(jPanel3, java.awt.BorderLayout.CENTER);
setSize(new java.awt.Dimension(1000, 600));
setLocationRelativeTo(null);
}// </editor-fold>
private void tabelaActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Tabela tela2 = new Tabela();
tela2.setVisible(true);
}
private void sortearActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
}
private void resetarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
estado = true;
s = 0;
m = 0;
h = 0;
lb1.setText("00");
lb2.setText("00");
lb3.setText("00");
resetar.setEnabled(!estado);
}
private void iniciarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
estado = true;
if (estado == true) {
resetar.setEnabled(!estado);
}
iniciar.setEnabled(!estado);
parar.setEnabled(estado);
Thread hilo;
hilo = new Thread() {
@Override
public void run() {
for (;;) {
if (estado == true) {
try {
sleep(100);
if (s <= 0) {
s = 59;
m--;
}
if (m <= 0) {
s = 59;
m = 59;
h--;
}
if (m == 00) {
h = 00;
m = 00;
s--;
if (s == 1) {
break;
}
}
if (Integer.valueOf(lb1.getText()) == 0 && Integer.valueOf(lb2.getText()) == 0 && Integer.valueOf(lb3.getText()) == 0) {
break;
}
//FORMATAÇÃO
if (h <= 9) {
lb1.setText("0" + h);
} else {
lb1.setText("" + h);
}
if (m <= 9) {
lb2.setText("0" + m);
} else {
lb2.setText("" + m);
}
if (s <= 9) {
lb3.setText("0" + s);
} else {
lb3.setText("" + s);
}
s--;
} catch (InterruptedException e) {
}
} else {
break;
}
}
}
};
hilo.start();
}