Esercizi in preparazione alla verifica di Informatica

Creare un’applicazione per NXT che utilizzi il sensore ad ultrasuoni e il sound sensor. Il programma deve avviarsi e rimanere all’interno di un ciclo in cui viene letta la distanza con il sensore ad ultrasuoni montato frontalmente ad una frequenza di 4 letture al secondo. Quando la distanza scende al di sotto di 30 cm il robot deve ruotare a destra di 90° e ripartire se era in movimento. Il sound sensor deve essere utilizzato con un ascoltatore di eventi e deve servire a farlo partire/fermare mediante un battito di mani 50 dB (inserire anche qui un ritardo di almeno 0,5 secondi per impedire che il battito di mani venga rilevato molte volte facendo fermare/partire in successione con risultati imprevedibili). La pressione del tasto ESCAPE deve far terminare il programma.

Creare un’interfaccia grafica che contenga un pannello JPanel con associato un evento attivato dal movimento del mouse. Nel JPanel deve esserci un null layout e una JLabel di nome lblCoord, posizionata in alto a sinistra che inizialmente visualizza la stringa “(0,0)”. Quando il mouse si muove devono essere visualizzate nella label i valori delle coordinate del mouse e la label deve spostarsi e rimanere sempre vicino a destra del cursore.

package coordinate;

import java.awt.Color;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;

import javax.swing.JLabel;
import javax.swing.JPanel;

public class JCoord extends JPanel implements MouseMotionListener {
	private JLabel lblCoord;

	public JCoord() {
		setBackground(Color.WHITE);
		setLayout(null);

		lblCoord = new JLabel("(0,0)");
		lblCoord.setBounds(0, 0, 100, 14);
		add(lblCoord);
		
		this.addMouseMotionListener(this);
	}

	@Override
	public void mouseDragged(MouseEvent me) {
	}

	@Override
	public void mouseMoved(MouseEvent me) {
		int x = me.getX();
		int y = me.getY();

		lblCoord.setText("(" + x + "," + y + ")");
		lblCoord.setLocation(x + 20, y);
	}
}