begin process at 2008 08 22 02:42:30
1 229 759 membres
30 nouveaux aujourd'hui
14 267 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

FAIRE CLIGNOTER UN BOUTON AVEC UN TIMER SWING


Information sur la source



Description

Dans la catégorie sassèrarien, ce programme fait clignoter un bouton...

Source

  • import java.awt.Color;
  • import java.awt.FlowLayout;
  • import java.awt.event.ActionEvent;
  • import java.awt.event.ActionListener;
  • import javax.swing.JButton;
  • import javax.swing.JFrame;
  • import javax.swing.JPanel;
  • import javax.swing.SwingUtilities;
  • import javax.swing.Timer;
  • public class ButtonBlinker extends JFrame {
  • private static final long serialVersionUID = 1L;
  • private JPanel jContentPane = null;
  • private JButton startButton = null;
  • private JButton pauseButton = null;
  • private JButton stopButton = null;
  • private static int blinkInterval = 200; // milliseconds
  • private enum Status { STOPPED, RUNNING, PAUSED };
  • private Status status = Status.STOPPED;
  • private boolean blink = false;
  • private Color pauseColor;
  • private Timer pauseTimer;
  • /**
  • * This is the default constructor
  • */
  • public ButtonBlinker(){
  • super();
  • initialize();
  • }
  • /**
  • * This method initializes this
  • *
  • * @return void
  • */
  • private void initialize(){
  • this.setSize(291, 103);
  • this.setTitle("Button Blinker");
  • this.setContentPane(getJContentPane());
  • pauseColor = pauseButton.getForeground();
  • updateCommandButtons(status = Status.STOPPED);
  • }
  • /**
  • * This method initializes jContentPane
  • *
  • * @return javax.swing.JPanel
  • */
  • private JPanel getJContentPane(){
  • if(jContentPane==null){
  • jContentPane=new JPanel();
  • jContentPane.setLayout(new FlowLayout());
  • jContentPane.add(getStartButton(), null);
  • jContentPane.add(getPauseButton(), null);
  • jContentPane.add(getStopButton(), null);
  • }
  • return jContentPane;
  • }
  • /**
  • * This method initializes startButton
  • *
  • * @return javax.swing.JButton
  • */
  • private JButton getStartButton(){
  • if(startButton==null){
  • startButton=new JButton();
  • startButton.setText("start");
  • startButton.addActionListener(new java.awt.event.ActionListener(){
  • public void actionPerformed(java.awt.event.ActionEvent e){
  • startButtonActionPerformed(e);
  • }
  • });
  • }
  • return startButton;
  • }
  • /**
  • * This method initializes pauseButton
  • *
  • * @return javax.swing.JButton
  • */
  • private JButton getPauseButton(){
  • if(pauseButton==null){
  • pauseButton=new JButton();
  • pauseButton.setText("pause");
  • pauseButton.addActionListener(new java.awt.event.ActionListener(){
  • public void actionPerformed(java.awt.event.ActionEvent e){
  • pauseButtonActionPerformed(e);
  • }
  • });
  • }
  • return pauseButton;
  • }
  • /**
  • * This method initializes stopButton
  • *
  • * @return javax.swing.JButton
  • */
  • private JButton getStopButton(){
  • if(stopButton==null){
  • stopButton=new JButton();
  • stopButton.setText("stop");
  • stopButton.addActionListener(new java.awt.event.ActionListener(){
  • public void actionPerformed(java.awt.event.ActionEvent e){
  • stopButtonActionPerformed(e);
  • }
  • });
  • }
  • return stopButton;
  • }
  • private void stopTimer(Timer timer) {
  • if (timer != null) timer.stop();
  • timer = null;
  • }
  • private void startButtonActionPerformed(java.awt.event.ActionEvent evt) {
  • updateCommandButtons(status = Status.RUNNING);
  • }
  • private void pauseButtonActionPerformed(java.awt.event.ActionEvent evt) {
  • updateCommandButtons(switchSuspended());
  • // setup or stop blinker
  • if (status == Status.PAUSED) {
  • (pauseTimer = new Timer(blinkInterval, new ActionListener() {
  • public void actionPerformed(ActionEvent evt) {
  • pauseButton.setForeground((blink = !blink) ? pauseColor : Color.RED);
  • }})).start();
  • } else {
  • stopTimer(pauseTimer);
  • }
  • }
  • private void stopButtonActionPerformed(java.awt.event.ActionEvent evt) {
  • updateCommandButtons(status = Status.STOPPED);
  • stopTimer(pauseTimer);
  • }
  • private Status switchSuspended() { return status = (status == Status.RUNNING ? Status.PAUSED : Status.RUNNING); }
  • public void updateCommandButtons(Status status) {
  • switch (status) {
  • case RUNNING:
  • startButton.setEnabled(false);
  • pauseButton.setEnabled(true);
  • stopButton.setEnabled(true);
  • pauseButton.setForeground(pauseColor);
  • System.out.println("started");
  • break;
  • case PAUSED:
  • startButton.setEnabled(false);
  • pauseButton.setEnabled(true);
  • stopButton.setEnabled(true);
  • System.out.println("paused");
  • break;
  • case STOPPED:
  • startButton.setEnabled(true);
  • pauseButton.setEnabled(false);
  • stopButton.setEnabled(false);
  • System.out.println("stopped");
  • break;
  • }
  • }
  • public static void main(String[] args){
  • SwingUtilities.invokeLater(new Runnable(){
  • public void run(){
  • ButtonBlinker thisClass=new ButtonBlinker();
  • thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  • thisClass.setVisible(true);
  • }
  • });
  • }
  • }
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.Timer;

public class ButtonBlinker extends JFrame {

	private static final long serialVersionUID = 1L;
	private JPanel jContentPane = null;
	private JButton startButton = null;
	private JButton pauseButton = null;
	private JButton stopButton = null;

	private static int blinkInterval = 200; // milliseconds
	private enum Status { STOPPED, RUNNING, PAUSED };
	private Status status = Status.STOPPED;
	private boolean blink = false; 
	private Color pauseColor; 
	private Timer pauseTimer; 
	

	/**
	 * This is the default constructor
	 */
	public ButtonBlinker(){
		super();
		initialize();
	}
	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize(){
		this.setSize(291, 103);
		this.setTitle("Button Blinker");
		this.setContentPane(getJContentPane());
		pauseColor = pauseButton.getForeground();
		updateCommandButtons(status = Status.STOPPED);
	}
	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane(){
		if(jContentPane==null){
			jContentPane=new JPanel();
			jContentPane.setLayout(new FlowLayout());
			jContentPane.add(getStartButton(), null);
			jContentPane.add(getPauseButton(), null);
			jContentPane.add(getStopButton(), null);
		}
		return jContentPane;
	}
	/**
	 * This method initializes startButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getStartButton(){
		if(startButton==null){
			startButton=new JButton();
			startButton.setText("start");
			startButton.addActionListener(new java.awt.event.ActionListener(){
				public void actionPerformed(java.awt.event.ActionEvent e){
					startButtonActionPerformed(e);
				}
			});
		}
		return startButton;
	}
	/**
	 * This method initializes pauseButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getPauseButton(){
		if(pauseButton==null){
			pauseButton=new JButton();
			pauseButton.setText("pause");
			pauseButton.addActionListener(new java.awt.event.ActionListener(){
				public void actionPerformed(java.awt.event.ActionEvent e){
					pauseButtonActionPerformed(e);
				}
			});
		}
		return pauseButton;
	}
	/**
	 * This method initializes stopButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getStopButton(){
		if(stopButton==null){
			stopButton=new JButton();
			stopButton.setText("stop");
			stopButton.addActionListener(new java.awt.event.ActionListener(){
				public void actionPerformed(java.awt.event.ActionEvent e){					
					stopButtonActionPerformed(e);
				}
			});
		}
		return stopButton;
	}

	private void stopTimer(Timer timer) { 
		if (timer != null) timer.stop(); 
		timer = null; 
	} 

	private void startButtonActionPerformed(java.awt.event.ActionEvent evt) {
		updateCommandButtons(status = Status.RUNNING);
	} 

	private void pauseButtonActionPerformed(java.awt.event.ActionEvent evt) { 
		updateCommandButtons(switchSuspended()); 
		// setup or stop blinker 
		if (status == Status.PAUSED) {
			(pauseTimer = new Timer(blinkInterval, new ActionListener() {
				public void actionPerformed(ActionEvent evt) {
					pauseButton.setForeground((blink = !blink) ? pauseColor : Color.RED);
				}})).start(); 
		} else { 
			stopTimer(pauseTimer);                  
		} 
	} 

	private void stopButtonActionPerformed(java.awt.event.ActionEvent evt) {
		updateCommandButtons(status = Status.STOPPED);				
		stopTimer(pauseTimer); 
	} 

	private Status switchSuspended() { return status = (status == Status.RUNNING ? Status.PAUSED : Status.RUNNING); }

	public void updateCommandButtons(Status status) { 
		switch (status) { 
			case RUNNING: 
				startButton.setEnabled(false); 
				pauseButton.setEnabled(true); 
				stopButton.setEnabled(true);
				pauseButton.setForeground(pauseColor);
				System.out.println("started");
				break; 
			case PAUSED: 
				startButton.setEnabled(false); 
				pauseButton.setEnabled(true); 
				stopButton.setEnabled(true);
				System.out.println("paused");
				break; 
			case STOPPED: 
				startButton.setEnabled(true); 
				pauseButton.setEnabled(false); 
				stopButton.setEnabled(false);
				System.out.println("stopped");
				break; 
		} 
	} 

	public static void main(String[] args){
		SwingUtilities.invokeLater(new Runnable(){
			public void run(){
				ButtonBlinker thisClass=new ButtonBlinker();
				thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				thisClass.setVisible(true);
			}
		});
	}
} 
  • signaler à un administrateur
    Commentaire de danimo le 18/07/2007 06:58:23

    Bonjour,


    Mais ou sont passees les classes enum et Status ?

  • signaler à un administrateur
    Commentaire de AlexN le 18/07/2007 22:20:23

    Désolé, je ne comprend pas ta question. Si tu lis en haut de la page, tu trouves :

    private enum Status { STOPPED, RUNNING, PAUSED };
    private Status status = Status.STOPPED;

    pour les enum il faut un jdk version quelquechose minimum, je ne sais plus, mais avec la toute dernière version tu devrais pouvoir les utiliser.

  • signaler à un administrateur
    Commentaire de danimo le 20/07/2007 00:01:07

    Voila ce qu'il se passe lors de la compile :
    javac ButtonBlinker.java
    ButtonBlinker.java:22: ';' expected
          private enum Status { STOPPED, RUNNING, PAUSED };
                              ^
    ButtonBlinker.java:22: cannot resolve symbol
    symbol  : class enum
    location: class ButtonBlinker
          private enum Status { STOPPED, RUNNING, PAUSED };
                  ^
    ButtonBlinker.java:23: cannot resolve symbol
    symbol  : class Status
    location: class ButtonBlinker
          private Status status = Status.STOPPED;
                  ^
    ButtonBlinker.java:139: cannot resolve symbol
    symbol  : class Status
    location: class ButtonBlinker
          private Status switchSuspended()
                  ^
    ButtonBlinker.java:143: cannot resolve symbol
    symbol  : class Status
    location: class ButtonBlinker
          public void updateCommandButtons(Status status)
                                           ^
    ButtonBlinker.java:147: cannot resolve symbol
    symbol  : variable RUNNING
    location: class ButtonBlinker
                case RUNNING: startButton.setEnabled(false);
                     ^
    ButtonBlinker.java:153: cannot resolve symbol
    symbol  : variable PAUSED
    location: class ButtonBlinker
                case PAUSED: startButton.setEnabled(false);
                     ^
    ButtonBlinker.java:158: cannot resolve symbol
    symbol  : variable STOPPED
    location: class ButtonBlinker
                case STOPPED: startButton.setEnabled(true);
                     ^
    8 errors

    et je crois qu'effectivement je n'ai pas le bon jdk.

    Merci tout de meme !

  • signaler à un administrateur
    Commentaire de AlexN le 20/07/2007 18:10:37

    jdk 5.0 minimum pour avoir les enum

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Boutique

Boutique de goodies CodeS-SourceS