Java-Forum.org  
Zurück   Java-Forum.org > Java - Programmierung > Java Basics - Anfänger-Themen

Java Basics - Anfänger-Themen: Button "Farbe wechseln"

Fragen ausschließlich zu Java-Grundlagen von Ein- und Umsteigern

Thema geschlossen    
Themen-Optionen Thema durchsuchen Ansicht
Alt 02.06.2005, 11:31   #1
 
Button "Farbe wechseln" - Standard Button "Farbe wechseln"

Hallo @ll,

ich hab folgendes Problem.
Ein Button soll die Farbe wechseln, sobald dieser gedrückt wird. Soweit zur Theorie aber...

Zu Anfang ist der Button grün und soll nach dem Klick auf rot wechslen. Jedoch bleibt der Button während dem Prozess gedrückt und nimmt daher auch die Farbe grau an. Erst wenn der Prozess durchlaufen ist springt der Button auf rot. Allerdings soll der Button ja während dem Prozess auf rot stehen!!

Wie bekomme ich jetzt den Button auf rot (ohne einen therat) muss doch irgendwie gehen, ist doch "nur" ein Button.

Thx für die Antworten
 
Alt 02.06.2005, 11:39   #2
gizmo
 
Button "Farbe wechseln" - Standard AW: Button "Farbe wechseln"

Ich nehme an, dass du mit "ohne einen therat" ohne einen Thread meintest, falls nicht, würde ich den Prozess welcher abläuft in einem Thread laufen lassen.
 
Alt 02.06.2005, 11:48   #3
L-ectron-X
 
Button "Farbe wechseln" - Standard AW: Button "Farbe wechseln"

Guck mal, so? In diesem Beispiel bleibt der Button so lange rot, bis die Maustaste wieder losgelassen wird. Danach "springt" er wieder auf grün. Wenn er die rote Farbe behalten soll, entfernst du einfach die mouseReleased()-Methode.
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class JButtonTest extends JFrame {
   private JButton jb;

   public JButtonTest(String title) {
      super(title);
      setLayout(new FlowLayout());
      setSize(600, 450);
      setLocationRelativeTo(null);
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      try {
         UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
      }
      catch(Exception e){ }
      
      jb = new JButton("Action");
      jb.setBackground(Color.green);

      jb.addMouseListener(new MouseAdapter() {
         public void mousePressed(MouseEvent e) {
            jb.setBackground(Color.red);
         }
         
         public void mouseReleased(MouseEvent e) {
            jb.setBackground(Color.green);
         }
      });

      add(jb);
   }

   public static void main(String[] args) {
      new JButtonTest("JButtonTest").setVisible(true);
   }
}
 
Alt 02.06.2005, 11:59   #4
 
Button "Farbe wechseln" - Standard AW: Button "Farbe wechseln"

wie kann ich die sleep Zeit des Threads eingeben

Thread Button = new Thread()
Button.start()
.
.
.
Butto.sleep(5000); <-- die 5000 akzeptiert er nicht
 
Alt 02.06.2005, 12:12   #5
Kian
 
Button "Farbe wechseln" - Standard AW: Button "Farbe wechseln"

Er müsste sie akzeptieren, vermutlich meckert er nur da du vielleicht vergessen hast den Sleep-Aufruf
in eine try-catch(InterruptedException ...) zu stellen.
 
Alt 02.06.2005, 12:15   #6
L-ectron-X
 
Button "Farbe wechseln" - Standard AW: Button "Farbe wechseln"

Ja, schreib mal die genaue Fehlermeldung. Und was ist mit meinem Code? Konntest du den verwenden?
 
Alt 02.06.2005, 12:35   #7
 
Button "Farbe wechseln" - Standard AW: Button "Farbe wechseln"

Also so sieht der entscheidene Code aus

class Quit implementsActionListener{

public void actionPerformed(ActionEvent m){

Memory.quittieren.setBackground(Color.RED);
Memory.quittieren.setEnabled(false);

Thread BThread= new Thread();
BThread.start();
}
public void run(){
while(true){
try{
Spieler.spielerablauf; //der Prozess
Thread.sleep(1000)
}
catch(Exception e) {}
}
}
}

In dieser Konstellation wird der Prozess irgendwie nicht aufgerufen.
Ich habe versucht den spielerablauf in der Methode actionPerformed zu belassen und in der Thread Methode "public void run()" den Befehl Center.repaint() zu verwenden um das GUI immer neu zeichen zu lassen. Funktioniert aber beides nicht.

@L-ectron-x

bei deinem Code würde ja jede Mausaktivität auf dem Butten regestriert werden und die Funktion des Buttons wäre nicht genutzt oder? probiert habe ich dies noch nicht.
 
Alt 02.06.2005, 13:27   #8
L-ectron-X
 
Button "Farbe wechseln" - Standard AW: Button "Farbe wechseln"

Zitat: Prothi
bei deinem Code würde ja jede Mausaktivität auf dem Butten regestriert werden und die Funktion des Buttons wäre nicht genutzt oder? probiert habe ich dies noch nicht.
mousePressed() macht im Moment nichts anderes als die Farbe des Buttons setzen, solange auf den Button gedrückt wird. Den Rest musst du in der actionPerformed()-Methode erledigen.
 
Alt 02.06.2005, 14:04   #9
 
Button "Farbe wechseln" - Standard AW: Button "Farbe wechseln"

@l-ectron-x

ja aber aber der Button wird erst farbig, wenn er aus dem gedrückten Zustand herausspringt. Aber bei uns bleibt er ja während dem Prozess in der "pressed" Stellung!!!.
 
Alt 02.06.2005, 14:27   #10
Sky
 
Button "Farbe wechseln" - Standard AW: Button "Farbe wechseln"

Zitat: Anonymous
@l-ectron-x

ja aber aber der Button wird erst farbig, wenn er aus dem gedrückten Zustand herausspringt. Aber bei uns bleibt er ja während dem Prozess in der "pressed" Stellung!!!.
Dann ändere doch auch für diesen Zustand die Farbe
 
Thema geschlossen    

Zurück   Java-Forum.org > Java - Programmierung > Java Basics - Anfänger-Themen

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Ähnliche Themen: Button "Farbe wechseln"
(Android) "Weiches wechseln" zwischen Views in einer Activity
"Weiches wechseln" zwischen Views in einer Activity: Hallo, ich habe zwei RelativeLayouts in einer...
zwischen 2 JPanels "elegant" wechseln
zwischen 2 JPanels "elegant" wechseln: Hallo Leider habe ich über Google nichts...
"String" in "int" umwandeln, und dann "int" in "float"
"String" in "int" umwandeln, und dann "int" in "float": Hi, also ich habe ein "JTextField" so, und nun,...
Farbe einer JTable-Zeile von "Außen" ändern
Farbe einer JTable-Zeile von "Außen" ändern: Hallo! Ich möchte gerne die Zellenfarbe einer...




Sie betrachten gerade Button "Farbe wechseln"