# JButton deaktivieren greift nicht



## GGK_01 (18. Sep 2012)

Hallo,

ich habe in meinem JPanel einen Button, den ich initial disablen möchte....nur ist das leichter gesagt...er weigert sich.


```
JButton btnRoutingStart = new JButton();
		btnRoutingStart.setEnabled(false);
		btnRoutingStart.setHorizontalAlignment(SwingConstants.LEFT);
		btnRoutingStart.setForeground(Color.BLACK);
		btnRoutingStart.setAction(RoutingStart);
		btnRoutingStart.setBounds(381, 8, 117, 30);
		contentPane.add(btnRoutingStart);
```

vielleicht könnt ihr einen Hinweis geben...wo das Problem liegen könnte.

Danke

GGK


----------



## Marco13 (18. Sep 2012)

KSKB or it didn't happen


----------



## tfa (18. Sep 2012)

Hast du dem Button später vielleicht ein Model zugewiesen?


----------



## GGK_01 (18. Sep 2012)

ich habe die Action in eine Klasse ausgelagert...


```
private class RoutingStart extends AbstractAction {
		/**
		 * 
		 */
		private static final long serialVersionUID = 1L;
		public RoutingStart() {
			ImageIcon icon = new ImageIcon(getClass().getResource("/images/start_klein.png"));
			putValue(Action.LARGE_ICON_KEY, icon);
			putValue(NAME, "Button");
			putValue(SHORT_DESCRIPTION, "Button tut was er soll");
			
		}
		public void actionPerformed(ActionEvent e) {
			try {
				RoutingStart();
			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		}
		
	}
```

GGK


----------



## tfa (18. Sep 2012)

AbsractAction hat eine setEnabled()-Methode. Probier die mal.


----------



## kaetzacoatl (18. Sep 2012)

```
btnRoutingStart.setAction(RoutingStart);
```
????
wenn dann:
	
	
	
	





```
btnRoutingStart.setAction(new RoutingStart());
```


----------



## Marco13 (18. Sep 2012)

RoutingStart RoutingStart = new RoutingStart();


----------



## bERt0r (18. Sep 2012)

```
try {
                RoutingStart();
            }
```
Den Konstruktor in actionPerformed aufrufen???? Kompiliert dir das teil überhaupt?


----------



## kaetzacoatl (18. Sep 2012)

bERt0r hat gesagt.:


> ```
> try {
> RoutingStart();
> }
> ...



Nein.
Hier ist was gewaltig schief gegangen!
entweder du erzeugst eine Methode
routingStart() oder du setzt new davor.


----------



## GGK_01 (18. Sep 2012)

```
try {
                RoutingStart();
            }
```

ist ein Methoden-Aufruf,mit dem ich arbeite.

aber das kann doch nicht mit der Dektivierung des Buttons zusammenhängen...oder doch?

GGK


----------



## kaetzacoatl (18. Sep 2012)

Dann nenn die Methode bitte routingStart()
Unsere Vermutung, dass es ein Constructor
sei kommt daher, dass du die Code Conventions for the Java Programming Language: 9. Naming Conventions nicht einhälts, und
es für uns deshalb so aussieht wie ein
Constructor.

edit:
poste mal den Code der Methode.


----------



## Ark (18. Sep 2012)

Hat er schon: es ist wirklich ein Konstruktor.

Ark


----------



## GGK_01 (18. Sep 2012)

kaetzacoatl hat gesagt.:


> Dann nenn die Methode bitte routingStart()
> Unsere Vermutung, dass es ein Constructor
> sei kommt daher, dass du die Code Conventions for the Java Programming Language: 9. Naming Conventions nicht einhälts, und
> es für uns deshalb so aussieht wie ein
> ...



Danke...daran muss ich arbeiten..danke für den Hinweis..
ABER: ist das der Grund weshalb sich der JButton nicht disablen lässt?

GGK


----------



## bERt0r (19. Sep 2012)

Ich rate einfach mal dass es daran liegt, dass du erst setEnabled(false) und danach dem Button eine Action zuweist. 
Aus AbstractButton.setAction: 





> Setting the Action results in immediately changing all the properties described in Swing Components Supporting Action. Subsequently, the button's properties are automatically updated as the Action's properties change.


Schreib das setEnabled doch mal ganz zum Schluss.
Btw. und benutze einen Layoutmanager.


----------



## GGK_01 (19. Sep 2012)

bERt0r hat gesagt.:


> .....
> Schreib das setEnabled doch mal ganz zum Schluss.
> Btw. und benutze einen Layoutmanager.




danke das war es schon...

LG, GGK


----------

