AbstractAction umbenennen

Status
Nicht offen für weitere Antworten.

Extractor

Aktives Mitglied
Hallo!

Wie kann ich denn eine AbstractAction umbenennen?


Code:
chattixMenu.add(new AbstractAction("Start Server") {
	       public void actionPerformed(ActionEvent e) {
                    if (startServer = true) {
                        startServer = false;
                        setName("Start Server");        //HIER UMBENENNEN
                    }else{
                        startServer = true;
                        setName("Stop Server");        //HIER UMBENENNEN

                    }
                  
	      }
	     });


Gruß Jan
 

Zunera

Aktives Mitglied
Hi,

ich gehe mal davon aus, dass du nicht die AbstractAction umbenennen willst, sondern den Menüpunkt - je nachdem ob Server gestartet oder gestoppt!? Wenn dem so ist solltest du mal
Code:
chattixMenu.setText(<Beschriftung>);
versuchen.
Weiß zwar nicht, was bei die chattixMenu für ein Objekt ist, aber wenn es ein MenuItem ist, müßte es so funktionieren.
 
B

Beni

Gast
Code:
putValue( Action.NAME, "Neuer Text");
 

Extractor

Aktives Mitglied
Hmm seltsam.

Obwohl ich die Variable startServer mit false initialisiere geht er nicht in die if (startServer = false)!

Was mach ich denn da falsch?

Was ich mit diesen if-Anweisungen erreichen will ist, dass der Menüpunkt umbenannt wird, wenn man ihn klickt.


Hier nochmal der Code:

Code:
//Chattix
	    JMenu chattixMenu = new JMenu("Chattix");
	    menuBar.add(chattixMenu);
	    
            //start local Server Button
            startServer = false;
            chattixMenu.add(new AbstractAction("Start Server") {
	       public void actionPerformed(ActionEvent e) {
                   if (startServer = false) {
                        startServer = true;
                        putValue(Action.NAME, "Stop Server");
                    } else {
                        startServer = false;
                        putValue(Action.NAME, "Start Server");
                    }
               }
	     });


Schonmal vielen Dank für die bisherige Hilfe.


Gruß Jan
 

DaKo

Bekanntes Mitglied
Weil deine Bedingung fehlerhaft ist ;)

Zuerst wird die Zuweisung startserver = false ausgeführt und dann startserver auf seinen Wert abgefragt (was natürlich false ist). Somit geht er nie in die If-Anweisung.

Was du willst ist
Code:
if(startserver == false)
 
G

Gast

Gast
Hallo, ich habe ein Verständnisfrage bezüglich der Klasse AbstractAction.
In diesem Code:
startServer = false;
chattixMenu.add(new AbstractAction("Start Server") {
public void actionPerformed(ActionEvent e) {
if (startServer = false) {
startServer = true;
putValue(Action.NAME, "Stop Server");
} else {
startServer = false;
putValue(Action.NAME, "Start Server");
}
}
});
wurde sie instanziiert. Ich bekomme aber immer einen Fehler, dass sie nicht instanziiert werden darf. O.K. sie ist ja nach der API-Doku abstrakt aber warum geht das denn hier?
Ich danke euch mehrmals!

Beste Grüße: Monika
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben