Olá,
gostaria de saber como fazer o seguinte
um programa fica em loop infinito imprimindo a letra A, porém, quando alguém dá um clique no teclado ele imprime a letra B…
Basicamente queria fazer algo como o kbhit da linguagem C…
Obrigado.
Olá,
gostaria de saber como fazer o seguinte
um programa fica em loop infinito imprimindo a letra A, porém, quando alguém dá um clique no teclado ele imprime a letra B…
Basicamente queria fazer algo como o kbhit da linguagem C…
Obrigado.
É bem simples:
Vou montar um pseudocodigo aqui
String letra="A"; //inicialmente A
while (true){
System.out.println(letra);
while (não houver interrupção do teclado)
letra=pegaLetraDigitadaNoTeclado();
}
}
Basta agora vc procurar como efetua a leitura do teclado. Busque no pacote JAVA.OI
Espero poder ter ajudado.
o que eu colocaria no lugar de “não houver interrupção do teclado” ???
olá
camilaoc, acho que isso ele já tinha uma idéia hehehe
bom, infelizmente não existe nada parecido com o kbhit() em java, então vc precisa fazer uma gambi… digo usar um outro meio para alcançar seus objetivos hehhee
[code]package teste;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
public class Kbhit extends JFrame implements KeyListener {
private static final long serialVersionUID = 1L;
boolean kbhit = false;
public static void main(String[] args) throws Exception {
Kbhit kbhit = new Kbhit();
while (!kbhit.kbhit()) {
System.out.print(".");
Thread.sleep(500);
}
kbhit.dispose();
}
public Kbhit() {
setSize(320, 240);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
addKeyListener(this);
setVisible(true);
}
public boolean kbhit() {
return kbhit;
}
public void keyPressed(KeyEvent e) {
kbhit = true;
System.out.println("keyPressed");
}
public void keyReleased(KeyEvent e) {
System.out.println("keyReleased");
}
public void keyTyped(KeyEvent e) {
System.out.println("keyTyped");
}
}
[/code]
O que fiz aí foi criar uma janela e um listener pros eventos do teclado, o único porém é que você precisa estar com o frame em foco para funcionar, e não consegui fazer apenas pelo console algo semelhante…
Espero que ajude