PDA

View Full Version : [JAVA] KeyListener e KeyEvent


44danni
04-12-2012, 11:49
Sto provando a scrivere un programma molto idiota (i primi esercizi) ma qualcosa non torna.
Alla pressione del tasto ALT-GR il programma dovrebbe entrare in un IF e stampare una Stringa, ma non lo fa. Entra solo nell'ELSE. Potreste aiutarmi a capire cosa manca nel mio codice?

public class EsercizioCinque extends Frame implements KeyListener
{
AscoltatoreFinestra asc = new AscoltatoreFinestra();
int b=0;
String t ="";

public static void main(String[] args)
{
EsercizioCinque ist = new EsercizioCinque();
}

EsercizioCinque()
{
setBounds (200,200,900,500);
setTitle ("Scegli carattere e colore");
setVisible(true);
addWindowListener(asc);
addKeyListener(this);


}
public void paint (Graphics g)
{

g.setFont(new Font ("Monospaced", Font.ITALIC, 20));
g.drawString("Premi ALT e l'iniziale di uno dei caratteri elencati per selezionarlo", 5, 50);


g.drawString("D: DejaVu Sans", 5, 80);
g.drawString("F: FreeMono", 5, 110);
g.drawString("G: Garuda", 5, 140);
g.drawString("K: KacstArt", 5, 170);
System.out.println(b);


if (b==1)
{
g.drawString("Premi CTRL e l'iniziale di uno dei colori elencati per selezionarlo",5,200);
g.drawString("R: Rosso "+" V: Verde "+" G: Giallo "+" M: Magenta", 5, 230);
// repaint();
}
else if (b==2)
g.drawString("HHHHHHHHHHHHHHHHH", 5, 300);
else if (b==3)
{
g.drawString("Che cazzo hai scritto?", 5, 250);
g.drawString("nnnnnn", 5, 300);
}


}



public void keyPressed (KeyEvent e)
{
if (e.getKeyCode()==KeyEvent.VK_ALT_GRAPH)
b = 1;
else if (e.getKeyCode()== KeyEvent.VK_CONTROL)
b = 2;
else
b = 3;
System.out.println(e.getKeyCode());
System.out.println(b);

}

public void keyReleased(KeyEvent e)
{


}

public void keyTyped(KeyEvent e)
{
t += e.getKeyChar();
// e.getKeyCode();

repaint();
}
}