如何java知道当按下q键, loop停止, 不需要任何输入提示

rufeng1210 2007-12-14 07:20:50
当按回车这个程序可以停止,如何按“q”就可以停止循环,
import java.io.IOException;

public class loop {
public static void main(String[] args) throws IOException{
for (int i=0;i<1000000; i++){
if(System.in.available() != 0) {
System.in.toString();


System.exit(0 );
} else {
System.out.println(i);

}
}
}//end of main

}
...全文
246 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
上善_若水 2007-12-14
  • 打赏
  • 举报
回复
如果是JSP应用的话可以在applet
public class A extends Applet implements KeyListener,Runnable
{
final FLAG = false;
public void keyPressed(KeyEvent e)
{
//Invoked when a key has been pressed.

if(e.getKeyCode()==KeyEvent.VK_Q)
{
loop(boolean true);
}
}
public loop (boolean flag)
{
while(!flag)
{
//continue....
}

}
public void init(String[] args) throws IOException
{
loop(FLAG);
}

}

cos100 2007-12-14
  • 打赏
  • 举报
回复
4楼的可以吗?
fengyifei11228 2007-12-14
  • 打赏
  • 举报
回复
哦,你的是java程序,那用
Sting s = System.in.read();
fengyifei11228 2007-12-14
  • 打赏
  • 举报
回复
用js试一下,在js中window.event.keyCode是监听键盘的输入
q是113
shadao 2007-12-14
  • 打赏
  • 举报
回复
打字打快了。。。
忘了加循环


private volatile boolean loopFlag = true;

public void loopme() {

Thread inputHandler = new Thread(new Runnable() {
public void run() {
try {
while(true){
int get = System.in.read();
switch (get) {
case 'q':
System.out.println();
loopFlag = false;
break;
case 's':
System.out.println();
loopFlag = true;
break;
default:
System.out.println("invaild input");
}
}
} catch (Exception e) {
// print it
}
}
});
inputHandler.setDaemon(true);
inputHandler.start();

for (int i = 0; i < 1000000 && loopFlag; i++) {
System.out.println(i);
}
}

shadao 2007-12-14
  • 打赏
  • 举报
回复
1楼基本正确

解决办法 +一个线程


比如


private volatile boolean loopFlag = true;

public void loopme() {

new Thread(new Runnable() {
public void run() {
try {
int get = System.in.read();
switch (get) {
case 'q':
System.out.println();
loopFlag = false;
break;
case 's':
System.out.println();
loopFlag = true;
break;
default:
System.out.println("invaild input");
}
} catch (Exception e) {
// print it
}
}
}).start();

for (int i = 0; i < 1000000 && loopFlag; i++) {
System.out.println(i);
}
}
karlpan01 2007-12-14
  • 打赏
  • 举报
回复
不是交互的界面或者页面,如何监听键盘?
newflypig 2007-12-14
  • 打赏
  • 举报
回复
如果在Swing或者swt中的话可以对窗体添加键盘监听器,如果是java终端程序的话估计没什么有效的办法,毕竟System.in会给系统一个挂起,会打断所有循环
zazxzx 2007-12-14
  • 打赏
  • 举报
回复
CSDN的牛人就是多

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧