JToggleButton

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
hey, wie kann ich feststellen ob ein solcher gerade "aktiv" ist, also eingedrückt, oder nicht?
und den dazugehörigen setter bräuchte ich auch.

mit isEnabled() scheinbar nicht, in der API hat der leider keine eigenen Methoden, sondern nur die 1200 geerbten.
Da weiss ich jetz nich nach was ich suchen soll, n gutes Beispiel hab ich auch nich gefunden..

Mein mouseListener muss ja wissen, was er ausführt, in abhängigkeit ob der button jetzt aktiviert wird oder deaktiviert.
 

martram

Aktives Mitglied
http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/AbstractButton.html#isSelected() ?
(setter: setSelected(boolean))
 
G

Guest

Gast
oh, entschuldige das hab ich nich gesehn..

hab nur nach "isActivated(), isEnabled(), isPressed()" usw gesucht, aber darna hab ich nicht gedacht :)

aber wo wir grad bei Buttons sind:

so ein ToggleButton hat anscheinend keine Animation wenn man mit der Maus drüber fährt (ich meine dass die Umrahmung leicht markiert wird, so wie bei allen anderen buttons)
Mir gefällt das so besser, deshalb wollt ich mal fragne wie man bei nem normalen JButton diese ganzen Animationen dekativieren kann.

und ich hab ein kleines Problem mit einer JProgressBar (das war jetzt doch eine geniale überleitung und ausrede keinen neuen thread zu machen oder).

ich möchte da gerne die schriftfarbe ändern, die standard-mässig blau ist.

mit setForeground() ändert man nur die füllfarbe, und ich hab nix gefunden, auch nich bei google etc, wo man die schriftfarbe an sich ändern kann.
dieses babyblau passt halt gar nich in mein farbschma hinein :(

achso und bei meinem polo is was mitm keilriemen nich in ordnung, könntet ihr da auch mal nachsehen? :lol:
 
G

Guest

Gast
edit:

das is es wohl doch nicht! er is immer selected, dass sehe ich daran dass er immer in den einen zweig reingeht! selected heisst wohl nur, dass die maus gerade auf ihm ist. ist zwar komisch, aber naja...das is aber nich die toggleinformation:

Code:
JToggleButton pause;
pause = new JToggleButton("Pause");
pause.setBounds(20,30,70,25);
pause.addMouseListener(this);
pause.setSelected(false);

 if (!pause.isSelected()) {
                System.out.println("jetzt angewählt");
                pause.setSelected(true);

            } else {
                System.out.println("wieder deaktiviert...");
                pause.setSelected(false);
            }

es wird immer:

"wieder deaktiviert..." ausgegeben! sowohl am anfang als auch wenn ich 20 mal hintereinander drauf klick! er geht NIE in dien if-zweig oO
 

L-ectron-X

Gesperrter Benutzer
Für Buttons sollte nicht MouseListener sondern ActionListener verwendet werden.

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JToggleButtonTest extends JFrame {
   private JToggleButton button;
   
   public JToggleButtonTest(String title) {
      super(title);
      setLayout(new FlowLayout());
      setSize(300, 200);
      setLocationRelativeTo(null);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      
      button = new JToggleButton("Klick mich!");
      button.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
            System.out.println(getButtonIsSelected());
         }
      });
      
      add(button);
   }
   
   private boolean getButtonIsSelected() {
      return button.isSelected();
   }

   public static void main(String[] args) {
      new JToggleButtonTest("JToggleButtonTest").setVisible(true);
   }
}
 
G

Guest

Gast
hm, ja aber das löst ja nicht das problem, es ist das selbe.

das ding ist, dass ich statt isSelected() und setSelected() andere Methoden brauche, da
zum Zeitpunkt des Klicks isSelected() IMMER true ist!
Aber so kann ich nicht herausfinden, ob der Button gerade aktiv ist oder nicht!
Es geht nicht:

Code:
    public void actionPerformed(ActionEvent a) {

            if (!pause.isSelected()) {
                System.out.println("running = FALSE");
                Param.running = false;
                pause.setSelected(true);
                pause.setText("Unpause");
            } else {
                System.out.println("running...");
                Param.running = true;
                pause.setSelected(false);
            }
    }

Immer wenn ich auf den Button "pause" drück, kommt die Meldung "running", d.h.
das setSelected(false) funktioniert irgendwie nicht, man kann so nicht rausfinden in welchem status sich
der Button befindet (Obwohl die API bei dieser MEthode eigentlich genau das behauptet)


L-ectron-X hat diesen Beitrag am 20.02.2008 um 17:20 Uhr editiert.
Code-Tags eingefügt.
 

L-ectron-X

Gesperrter Benutzer
Du darfst ja auch nicht den Status des Buttons per Code beinflussen.
Wäre folgendes in deinem Sinne?
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JToggleButtonTest extends JFrame {
   private JToggleButton button;
   private JLabel label;
   
   public JToggleButtonTest(String title) {
      super(title);
      setSize(300, 200);
      setLocationRelativeTo(null);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

      label = new JLabel("ready");
      add(label, BorderLayout.SOUTH);
      
      button = new JToggleButton("Start!");
      button.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent a) {
            if (!getButtonIsSelected()) {
                label.setText("paused");
                //Param.running = false;
                button.setText("Continue");
            } else {
                label.setText("running...");
                //Param.running = true;
                button.setText("Pause");
            }
         }
      });
      
      JPanel panel = new JPanel();
      panel.add(button);
      
      add(panel, BorderLayout.CENTER);
   }
   
   private boolean getButtonIsSelected() {
      return button.isSelected();
   }

   public static void main(String[] args) {
      new JToggleButtonTest("JToggleButtonTest").setVisible(true);
   }
}

Anonymous hat gesagt.:
wie man bei nem normalen JButton diese ganzen Animationen dekativieren kann.
Code:
button.setFocusPainted(false);



L-ectron-X hat diesen Thread am 24.02.2008 um 10:53 Uhr gesperrt.
Thread gesperrt, nach dem ein weiterer Thread mit ähnlichem Problem eröffnet wurde.
http://www.java-forum.org/de/viewtopic.php?t=64627
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C JToggleButton disabled Text Color AWT, Swing, JavaFX & SWT 11
Paul15 JCheckBox und JToggleButton AWT, Swing, JavaFX & SWT 5
P Swing JToggleButton Links- und Rechtsklick AWT, Swing, JavaFX & SWT 4
T Swing JToggleButton Zustand AWT, Swing, JavaFX & SWT 2
E JToggleButton automatisch nach drücken loslassen AWT, Swing, JavaFX & SWT 3
V Swing Custom JToggleButton in JTable - Click-Event geht erst beim zweiten Mal AWT, Swing, JavaFX & SWT 7
kodela Swing JToggleButton und Tastatur AWT, Swing, JavaFX & SWT 2
P Swing JComboBox mit JToggleButton kombinieren AWT, Swing, JavaFX & SWT 4
C ausgewählte JtoggleButton als Variablenwert ausgeben AWT, Swing, JavaFX & SWT 14
B JToggleButton und StyledEditorKit.ItalicAction() AWT, Swing, JavaFX & SWT 2
P JToggleButton AWT, Swing, JavaFX & SWT 6
M Swing Selektion mehrerer JToggleButton's in einer Gruppe AWT, Swing, JavaFX & SWT 5
K JToggleButton deaktivieren (komplettes event nehmen) AWT, Swing, JavaFX & SWT 2
C Swing JToggleButton und Icon AWT, Swing, JavaFX & SWT 2
G JToggleButton - Hintergrundfarbe beim Drücken festlegen AWT, Swing, JavaFX & SWT 4
G JToggleButton pressed geht nicht AWT, Swing, JavaFX & SWT 2
gieser jToggleButton: Text unter Bild AWT, Swing, JavaFX & SWT 2
F JToggleButton in AWT umsetzen (Button soll stecken bleiben) AWT, Swing, JavaFX & SWT 4
G welcher Jtogglebutton geklickt? AWT, Swing, JavaFX & SWT 3
G JToggleButton mit Bild AWT, Swing, JavaFX & SWT 6
O ButtonGroup + JToggleButton &;nbsp] AWT, Swing, JavaFX & SWT 6
S Zweidimensionales Array - JToggleButton AWT, Swing, JavaFX & SWT 3
E JToggleButton Zustandsänderung AWT, Swing, JavaFX & SWT 4
M JToggleButton immer nur einen aktivieren AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben