Ciao a tutti.
Dopo essere un po' impazzita sono riuscita a scrivere questo programmino che disegna un rettangolo o un ovale a seconda del tasto premuto.
Vorrei modificare il programma in modo che sia possibile digitare un solo ed unico carattere e non una stringa.
Non riesco a trovare un metodo pronto. Pensavo di poter chiudere
testo += e.getKeyChar();
repaint();
all'interno di un ciclo, solo che il risultato è che non digita proprio niente. Potete indicarmi la strada su cui continuare ad impazzire?
codice:public class EsercizioDue extends Frame implements KeyListener { Ascoltatore asc = new Ascoltatore(); String testo =""; public static void main (String args[]) { EsercizioDue ist = new EsercizioDue(); } EsercizioDue() { setBounds(5,10,500,300); setTitle ("Esercizio Due"); addWindowListener(asc); // addKeyListener(this); setVisible(true); } public void keyPressed (KeyEvent e) { } public void keyReleased (KeyEvent e) { } public void keyTyped (KeyEvent e) { testo += e.getKeyChar(); repaint(); } public void paint (Graphics g) { g.setColor(Color.red); g.drawString("Digita una R per disegnare un rettangolo oppure uno O per un ovale", 20, 40); g.setColor(Color.black); g.drawString(testo, 30, 80); addKeyListener(this); if (testo.equalsIgnoreCase("r")) g.drawRect(20, 80, 400, 200); if (testo.equalsIgnoreCase("o")) g.drawOval(20, 80, 400, 200); // else // System.out.println("Hai digitato un tasto non corretto"); } class Ascoltatore extends WindowAdapter { public void windowClosed (WindowEvent e) { System.exit(0); } public void windowClosing (WindowEvent e) { e.getWindow().dispose(); } } }

Rispondi quotando