# RMI und JOptionPane



## Maik1987 (23. Jan 2008)

hallo,
ich sitze jetzt seit gut 4h an einem problem und habe echt keine idee wos klemmt, das ist der codeschnipsel:
er wird aufgerufen mit i=0:

```
public void doItOnRemoteAgain(int i) throws RemoteException{
int n = JOptionPane.showOptionDialog(null, "...", "Ja/Nein", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE,null,....);
if ( n == JOptionPane.YES_OPTION ) {
 tue etwas
 if(i==0){
   führe dieselbe Methode nochmal auf dem anderen Rechner aus	 
   handleAufAnderenRechner.doItOnRemoteAgain(1);	 
 }
}	    
}
```

Starte ich die Methode auf dem rechner auf dem der Namensserver erstellt worden ist funktioniert alles und das JOptionPane wird auf beiden rechnern angezeigt. 
Wird die Methode aber auf dem anderen Rechner gestartet erscheint die Frage und nach klick auf "ja" ploppt zwar beim anderen das fenster auf aber es wird nicht vollstämdig gezeichnet soll heißen es ist nur die titelleiste und der schmal äußere rahmen da. system ist win xp. JRE 1.4.1.

Wie gesagt ich habe echt keinen blaßen schimmer woran es liegen könnte und wäre echt dankbar für jede hilfe.

VG


----------



## tuxedo (24. Jan 2008)

Das ist ein Threading-Problem. Du musst den Aufruf des Fensters entkoppeln. 

- Alex


----------



## Guest (24. Jan 2008)

Hallo,
danke für deine Antwort.

Kannst du vielleicht etwas konkreter werden? Was genau meinst du mit entkoppeln!??
Codeschnipsel dafür?

VG


----------



## tuxedo (24. Jan 2008)

DU musst das anzeigen der OptionPane in einem eigenen Thread laufen lassen... Soll heissen: JOptionPane und NetzwerkKommunikation müssen voneinander getrennt laufen.
CodeSchnipsel hab ich keinen. Aber zum Thema Threads findest du im Forum sowie im Netz genug Info.

- Alex


----------



## Guest (24. Jan 2008)

Nochmal danke für deine Antwort.
Meinst du gäne es rein konzeptionell einen Weg die Threadgeschichte zu vermeiden!?

VG


----------



## Guest (25. Jan 2008)

Anonymous hat gesagt.:
			
		

> Nochmal danke für deine Antwort.
> Meinst du gäne es rein konzeptionell einen Weg die Threadgeschichte zu vermeiden!?
> 
> VG


Suche mal nach Beispielen zu SwingWorker.


----------



## tuxedo (25. Jan 2008)

> Suche mal nach Beispielen zu SwingWorker.

Was ja prinzipiell auch nix anderes ist .. ;-)

So langsam erinner ich mich wieder... Bei mir war ein JDialog was mit RMI zusammen nicht so wollte. Nach einigem hin und her, hab ich dann einen nicht-modalen Dialog genommen. Dann gings. Lag also an der modalität. Aber im Hintergrund ist das IMHO eben ein Threading-Problem. Mit dem Swing-Worker müssts funktionieren.

Wäre jetzt noch interessant ob mein "SIMON" das Problem auch hat... Müsst ich mal testen.

- Alex


----------

