Oi Galera!!!
To quebrando a cabeça e nao to conseguindo resolver o seguinte problema. O codigo abaixo cria uma janela com dois botoes… play e stop. Quando aperta play, inicia um laço q vai imprimir o valor da variavel ate chegar a condição final, q é x<20000 e continua==true. Porem o q quero fazer é q ao pressionar o botao stop, altere o valor da variavel continua para false e interrompa o laço.
import java.applet.AudioClip;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.URL;
import java.net.MalformedURLException;
import java.awt.GridBagLayout;
import java.util.Random;
import javax.swing.JFrame;
import java.awt.*;
import java.awt.event.*;
public class teste extends JPanel
{
/**
* Creates a new instance of <code>teste/code>.
*/
boolean continua=true;
JButton playButton, loopButton, stopButton;
public teste() {
playButton = new JButton("Play");
playButton.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
stopButton.setEnabled(true);
playButton.setEnabled(false);
int x=0;
// inicio do laço
do{
System.out.println(x++);
System.out.println(continua);
}while (x<20000&&continua==true);
System.out.println("Play");
}
}
);
stopButton = new JButton("Stop");
stopButton.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
stopButton.setEnabled(false);
playButton.setEnabled(true);
continua=false;
System.out.println(continua);
System.out.println("Stop");
}
}
);
stopButton.setEnabled(false);
JPanel controlPanel = new JPanel();
controlPanel.add(playButton);
controlPanel.add(stopButton);
add(controlPanel);
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
WindowListener l = new WindowAdapter() {
public void windowClosing(WindowEvent e) {System.exit(0);}
};
JFrame f = new JFrame("Do... while");
f.addWindowListener(l);
f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
f.getContentPane().add(new teste());
f.setSize(new Dimension(400,100));
f.show();
}
}