Newsgroup: it.comp.java
Titolo: Una sorta di RadioButton non modificabile

Ciao
volevo realizzare una specie di spia luminosa che mostri un'icona rossa o
verde a seconda se è Selected o Deselected.
Stavo cercando di farlo utilizzando un RadioButton, ma non mi piace il fatto
che l'utente continui a poter modificare lo stato (dovrebbe essere una sorta
di informazione di stato).
Come posso fare a non permettere la manipolazione dello stato del
RadioButton??
Mettendo Enabled a false spariscono i colori delle icone e quindi non va.
Devo estendere RadioButton (e come faccio a disabilitare la reazione ad
eventi) oppure c'è un metodo proprio che non ho visto??
Grazie e ciao

 di informazione di stato).
<CUT>
forse ancora meglio del RadioButton posso utilizzare il JToggleButton, ma mi
rimane il problema di come far sě che l'utente non possa modificarne lo
stato. :(
Ciao

 stato. :(
<CUT>
forse sto avendo dei colpi di genio!! ;)
se facessi jToggleButton.setAction(null) otterrei quello che voglio senza
altri effetti collaterali non desiderati?!?
ora provo!

 wrote in message
news:adldqj$7rpv$1...@ID-52945.news.dfncis.de...

Il radioButton č studiato appositamente per avere input dall'utente...
Perchč complicarsi la vita?!?
Se vuoi semplicemente fare un led utilizza una JLabel con un'immagine
dentro. Cosě, tra l'altro, metti le immagini che vuoi tu (vedi nelle
JavaDemo la lampadina accesa e spenta....)
HTH,
Fausto.

Se non mi sbaglio il tuo è un problema di focus, prova a reimplentare il
metodo isFocusable() così:
public boolean isFocusable(){
    return false;
}
Comunque penso che le soluzioni migliori siano quelle che ti ha proposto
Fausto.
Ciao

 JavaDemo la lampadina accesa e spenta....)
cmq hai perfettamente ragione ero partito in quarta senza vedere la
soluzione piů logica!! :)
Stanotte ho anche pensato a come poterla fare lampeggiante!!
Ciao e grazie


Saluto.

 verde a seconda se è Selected o Deselected.
non so se interessa a qualcuno ma visto che mi è riuscito al primo colpo
facendolo pure lampeggiante ho deciso di sottoporvelo!! :)
Eccovi il mio LED!! e grazie di nuovo a tutti per l'aiuto
Segue codice:
********************************************
import javax.swing.JLabel;
import javax.swing.Icon;
import java.awt.*;
import java.awt.event.*;
/**
 * <p>Title: Implementazione di un LED bicolore</p>
 * <p>Description: Oggetto LED bicolore con possibilità di settare lo stato
(ON/OFF) con semplici metodi di set;
 *                  Il LED ha la capacità di lampeggiare. </p>
 * <p>Copyright: Copyright (c) 2002</p>
 * <p>Company:</p>
 * @author Sebi Rotta
 * @version 1.0
 */
public class LED extends JLabel implements ActionListener {
  public static final boolean ON = true;
  public static final boolean OFF = false;
  private Icon imgON, imgOFF;
  private boolean blinking = false;
  private boolean status;
  javax.swing.Timer timer;
  /*
   * Costruttore che definisce le immagini corrispondenti allo stato di On e
di Off;
   * lo stato iniziale è settato su Off
   */
  public LED(Icon on, Icon off) {
          super (off);
          status = OFF;
          imgON = on;
          imgOFF = off;
          timer = new javax.swing.Timer(0, this);
          }
    /*
     * Permette di settare lo stato On o Off dell'oggetto e la
corrispondente immagine
     */
  public void setState (boolean state) {
          if (state)
            setIcon (imgON);
            else setIcon (imgOFF);
          status = state;
          }
    /*
     * setta lo stato di lampeggio del LED; il parametro (int) rappresenta
il periodo di lampeggio in msec
     * un periodo di 0 msec rappresenta il comando di stop del timer.
     */
  public void setBlink (int per){
          if (per == 0) {//il lampeggio deve smettere
                if (timer.isRunning()) {timer.stop();
                                        blinking = false;}
                }
          else {blinking = true;
                timer.setDelay(per);
                timer.start();}
          }
      /*
       * Azioni da eseguire ad opera del Timer; in pratica esegue il
lampeggio del LED
       */
  public void actionPerformed(ActionEvent ev){
          if (status){
              setIcon(imgOFF);
              status = OFF;}
              else {setIcon (imgON);
                    status = ON;}
          //status = !status;
          }
      /*
       * Ritorna lo stato di lampeggio o meno del LED
       */
  public boolean isBlinking(){
          return blinking;}
      /*
       * Ritorna lo stat di On o Off del Led
       */
  public boolean getStatus(){
          return status;}
}