【发布时间】:2011-08-01 21:37:20
【问题描述】:
我创建了一个输出选项卡,我想监听用户的输入(做一个类似聊天的组件)。当然,您无法预测用户何时会打字。
我找到了 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 是我创建的用于处理输出选项卡的辅助类。可以看它的出处here
有什么想法吗?
【问题讨论】: