Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ändern einer Socket-Eigenscheft aus einem modalen Dialog?
Hallo.
Ich möchte in einem Dailogfenster in einem Textfeld einen Namen eingeben. Dieser Name soll dann in die Eigenschaft einer Komponente auf dem Hauptframe eingetragen werden. Wie kann ich aber auf die Komponenten des Hauptfensters zugreifen? Ich habe es schon mit "parent.socket.setRemoteHostName("xxx")" oder auch direkt mit dem Komponentennamen ohne "parent" probiert. Ich erhalte einfach keinen Zugriff auf die Eigenschaft. Kann mir da jemand weiterhelfen?
wenn ich dich richtig verstanden habe, soll das am ende etwar so ablaufen:
Der Hauptfarme ist offen.
Der Dialog öffnet sich.
Es wirt ein String (A) in ein Textfeld im Dialog eingetragen.
Der Dialog wird geschloßen.
In einem Textfeld des Hauptframe steht der String A.
Dafür muss der Listener des Dialoges, der dessen Textfeld ausleist direkt oder indirekt den Hauptframe kennen und auf das Textfeld des Hauptframes ein setText(A) aufrufen.
Wenn das Senario so stimmt, kann ich dir das ganze auch noch etwas ausführlicher erläutern.
Naja,
Im Prinzip ist das richtig. Nur, das der Text aus dem Dialog eine Eigenschft neu setzen soll.
Das heisst: Ich gebe im Dialogfenster in einem Textfeld einen String ein. Dieser String soll der neue Name eines Sockets werden, der im Mainframe bereits mit dem RemoteHostName "localhost" existiert. Wenn ich nun den Dialog schliesse, soll der neue Text (sagen wir "Testrechner") an Stelle von "localhost" gesetzt werden. Ich habe es mit:"socket_1.setRemoteHostName( textf_1_RemoteHost.getText() )" probiert, aber da bleibt er dann einfach hängen und schliesst nicht mal mehr das Dialogfenster. Außerdem: Ist es richtig, daß ich den Socket_1 unter den DataMembers des Dialogfensters noch mal angeben muß? Eigentlich existiert der doch schon?!
Schau dir mal die Klasse JOptionPane an. Am besten öffnest du einen InputDialog. Dieser liest einen Text ein, und gibt ihn als Rückgabewert zurück. diesen kannst du dann direkt im Hauptframe benutzen.
Ich werde es mal versuchen. allerdings ist mir trotzdem schleierhaft, warum ich eine Objekt-Eigenschaft nicht einfach ändern kann. Obwohl das objekt auf einem anderen Frame liegt, ist es doch vorhanden, deklariert und ansprechbar - naja, zumindest aus dem Mainframe selbst heraus. Da kann ich die Eigenschaft nämlich mit der oben angagebenen Zeile ändern!
du kannst aus dem dialog fenster einen rückgabe wert machen, der nach beendigung dem hauptfenster übergeben wird.
eine andere möglichkeit wäre die speicherung in einer variablen die du dann mit getV() wieder abfrägst.