2010-12-08 15 views
1

Kann mich jemand direkt auf das verweisen? Ich möchte, dass der actionlistener in einem Applet 1 von 3 Parametern in einem jablel retreived aus der html-Datei anzeigt, wenn die entsprechende Option aus einem Kombinationsfeld ausgewählt ist.java help applet aktion listener

Prost

Antwort

0

für ein Kombinationsfeld möchten Sie ein ItemListener zu Ihrem Kombinationsfeld hinzuzufügen, um die Änderung zu behandeln. Sie sollten eine Art Controller-Klasse (nur eine reguläre Klasse, die) erstellen und diese als Ihren Listener hinzufügen. Dann programmieren Sie Ihre Logik in der itemStateChanged Methode. Wahrscheinlich möchten Sie dem ItemListener einen Bezug zu Ihrem Panel geben, damit er die entsprechenden Änderungen vornehmen kann.

Eine andere Anmerkung. Wenn Sie die HTML-Datei im laufenden Betrieb lesen, wenn die Dropdown-Liste ausgewählt ist, bleibt die Benutzeroberfläche stehen, bis dieser Vorgang abgeschlossen ist. Dies liegt daran, dass diese Ereignisse ausgelöst und im Event Dispatch-Thread ausgeführt werden, dem Hauptthread für die Benutzerinteraktion. Um dies zu vermeiden, können Sie die HTML-Datei entweder im Voraus in den Arbeitsspeicher schreiben oder Sie können einen separaten Thread im itemStateChanged-Ereignis erstellen, um die HTML-Datei zu analysieren. Denken Sie nur daran, wenn Sie fertig sind, SwingUtilities.invokeLater zu verwenden, um eine weitere ausführbare Datei zurück auf den Event Dispatch Thread zu bekommen, um das Drop-Down zu aktualisieren. Alle Updates der Swing-Benutzeroberfläche müssen innerhalb des Ereignis-Dispatch-Threads erfolgen.

+0

Wenn ich den itemStateChanged Listener verwende, was würde ich darunter schreiben? if (studentComboBox.getSelectedItem(). ist gleich ("student1")) { Label = new JLabel (s); public void run() { Zeichenfolge s = getParameter ("student1"); –

+0

Sie möchten tatsächlich das 'ItemEvent' verwenden, das an die' itemStateChanged'-Methode übergeben wurde. 'ItemEvent.getItem()' wird das fragliche Objekt erhalten. 'ItemEvent.getStateChanged()' sagt Ihnen, ob es ausgewählt oder abgewählt wurde. Zwei Ereignisse werden ausgelöst, wenn das Dropdown-Menü geändert wird. Die erste Auswahl "hebt die Auswahl auf" und die zweite Auswahl auf die neue Auswahl. Soweit das "JLabel", möchten Sie es wahrscheinlich erstellen und ausblenden, wenn Sie das Panel erstellen. Dann können Sie 'setText()' und 'setVisible (true)' aufrufen, wenn das Dropdown-Menü ausgewählt ist. –