我想询问你是否可以永远听外部输入,而你可以做按钮点击,短信输入等事件。
就像它每秒都在监听,如果它收到数据,它会做一些事情。如果它没有接收数据,那么它继续监听数据。
在听的时候,我可以做我上面提到的事件。
抱歉我的英语不好。
答案 0 :(得分:0)
从流中读取的唯一好方法是在一个单独的线程中。对于一个愚蠢的例子,如果你想用最后一个字节读取更新标签,这样的东西可能会起作用:
static void startListening(DataInputStream inputStream, JLabel label) {
new Thread(() -> {
try {
while (true) {
int i = inputStream.read();
if (i < 0) {
updateText(label, "Closed");
break;
} else {
updateText(label, "Latest byte: " + i);
}
}
} catch (Exception e) {
updateText(label, "Error: " + e);
}
}).start();
}
static void updateText(JLabel label, String text) {
SwingUtilities.invokeLater(() -> label.setText(text));
}