У меня создана вкладка «Вывод», и я хотел бы прослушать ввод пользователя (для создания компонента, похожего на чат).Конечно, вы не можете предсказать, когда пользователь собирается печатать.
Я нашел пакет org.jivesoftware.smack.util и связанные ObservableReader и ReaderListener, которые должны помочь, но я кое-что упустили не могу понять ... пока.
Вот код, который у меня есть:
/*
* Enable/create the tabs we need for the component
*/
package sample.component;
import com.dreamer.outputhandler.OutputHandler;
import org.jivesoftware.smack.util.ObservableReader;
import org.jivesoftware.smack.util.ReaderListener;
import org.openide.modules.ModuleInstall;
/**
* Manages a module's lifecycle. Remember that an installer is optional and
* often not needed at all.
*/
public class Installer extends ModuleInstall implements ReaderListener {
private final String normal = "Output";
@Override
public void restored() {
OutputHandler.output(normal, "Welcome! Type something below.");
OutputHandler.setInputEnabled(normal, true);
ObservableReader reader = new ObservableReader(OutputHandler.getReader(normal));
reader.addReaderListener(this);
}
@Override
public void read(String read) {
System.out.println("Read: " + read);
OutputHandler.output(normal, "You typed: " + read);
}
}
OutPutHandler - это вспомогательный класс, который я создал для обработки вкладок вывода.Вы можете увидеть его источник здесь
Есть идеи?