Olá galera, sou novo por aqui e já estou trazendo problemas rsrsrsrsrsrss.
É o seguinte estou fazendo um programinha que eu quero adicionar uma contagem regressiva no setText do JButton.
Tipo assim, quando o usuario clicar no botão, o mesmo botão fica inativo e começa uma contagem regressiva no setText do botão, até a contagem chegar a zero, ae o botão fica ativo novamente. Consequi criar a contagem mas não consigo colocar no botão.
Quando clicko no botão ele trava, a acontagem acontece mas eu não a vejo.
Crie um javax.swing.Timer que faça isso. Não use Thread.sleep que só irá travar seu botão.
E
entanglement
Um exemplo boboca. Note que não uso nenhum Thread.sleep.
packageguj;importjava.awt.BorderLayout;importjava.awt.FlowLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax.swing.SwingUtilities;importjavax.swing.Timer;publicclassTesteBotaoextendsJFrame{privatestaticfinallongserialVersionUID=1L;privateJPaneljContentPane=null;privateJLabellbl=null;privateJPanelpnlButtons=null;privateJButtonbtnContagemRegressiva=null;privateJPanelgetJPanel(){if(pnlButtons==null){pnlButtons=newJPanel();pnlButtons.setLayout(newFlowLayout());pnlButtons.add(getJButton(),null);}returnpnlButtons;}privateJButtongetJButton(){if(btnContagemRegressiva==null){btnContagemRegressiva=newJButton();btnContagemRegressiva.setText("Botão");btnContagemRegressiva.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEvente){btnContagemRegressiva.setEnabled(false);count=10;btnContagemRegressiva.setText(""+count);timer=newTimer(1000,newActionListener(){@OverridepublicvoidactionPerformed(ActionEvente){count=count-1;btnContagemRegressiva.setText(""+count);if(count<=0){timer.stop();btnContagemRegressiva.setEnabled(true);}}});timer.start();}});}returnbtnContagemRegressiva;}publicstaticvoidmain(String[]args){SwingUtilities.invokeLater(newRunnable(){publicvoidrun(){TesteBotaothisClass=newTesteBotao();thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);thisClass.setVisible(true);}});}publicTesteBotao(){super();initialize();}privatevoidinitialize(){this.setSize(300,200);this.setContentPane(getJContentPane());this.setTitle("Teste de Contagem Regressiva");}privateJPanelgetJContentPane(){if(jContentPane==null){lbl=newJLabel();lbl.setText("Contagem Regressiva");jContentPane=newJPanel();jContentPane.setLayout(newBorderLayout());jContentPane.add(lbl,BorderLayout.NORTH);jContentPane.add(getJPanel(),BorderLayout.SOUTH);}returnjContentPane;}privateintcount;privateTimertimer;}
Sabotage171
O BOBÃO Muito Obrigado deu tudo certo!!!
Um Abraço.