ThreadExample

JWait

public class JWait extends JLabel implements Runnable {

	private final String MESSAGE = "Wait, please";
	private boolean running = false;

	public JWait() {
		this.setText(MESSAGE);
		this.setOpaque(true);
		this.setBackground(Color.YELLOW);
	}

	public void start() {
		if (!running) {
			running = true;
			Thread t = new Thread(this);
			t.setDaemon(true);
			t.start();
		}
	}

	public void stop() {
		running = false;
	}

	public void reset() {
		this.setText(MESSAGE);
	}

	@Override
	public void run() {
		while (running) {
			this.setText(this.getText() + ".");
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
			}
		}
	}

}

Progetto Eclipse: ThreadExample.zip

Per la spiegazione teorica sui thread fare riferimento al testo: Java per Robot, pag. 121
oppure alla pagina: http://www.claudiodesio.com/java/tutorialjavathread/threads.htm

Biblioteca per la 4E

Progetto Eclipse: Biblioteca-Vers3
Progetto aggiornato alla lezione del 3 febbraio 2017. Studiare il progetto prestando attenzione ai metodi di lettura e scrittura degli oggetti Libro sul file Biblioteca.dat; il compito da svolgere è sul quaderno elettronico.

Progetto Eclipse: Biblioteca-Vers2
Progetto aggiornato alla lezione del 30 gennaio 2017. Studiare il progetto prestando attenzione all’utilizzo della classe ArrayList in associazione con i generics. Studiare la struttura della finestra di dialogo modale JInputLibro per l’input dei dati.

Progetto Eclipse: Biblioteca-Vers1
Prima versione del progetto Biblioteca senza l’utilizzo dei generics e mediante la classe Vector; l’input dei dati avviene mediante una sequenza di richieste di un dato alla volta.

File di esempio sull’utilizzo dei generics: Il tipo Generics in Java.pdf

Grafico per la 1ª A

Tracciare il grafico con gli errori e la curva (polinomiale di secondo grado) a partire dai dati seguenti. L’errore sul tempo è di 0,1 secondi, quello sullo spazio di 1 cm

t (s) s (m)
0,0 0,000
0,1 0,049
0,2 0,196
0,3 0,441
0,4 0,784
0,5 1,225
0,6 1,764
0,7 2,401
0,8 3,136
0,9 3,969
1,0 4,900
1,1 5,929
1,2 7,056
1,3 8,281

Esercizi in preparazione alla verifica di Fisica per la classe 5E

1) Un’asta metallica di massa 2,5 g è disposta orizzontalmente all’interno di un campo magnetico disposto orizzontalmente di intensità 0,85 T. L’asta lunga 22 cm è disposta perpendicolarmente alle linee di forza di B: calcola quale intensità di corrente deve attraversare la sbarra per impedirle di cadere. [0,1310 A]

2) Tre fili conduttori sono disposti nei 3 vertici consecutivi di un quadrato di lato 15 cm. Essi sono percorsi dalle correnti di +15, -10 e +10 A. Calcola in componenti cartesiane il valore del campo magnetico nel quarto vertice del quadrato. [Bx=6,667·10^-5; By=1,333·10^-5 T]

3) Un elettrone (carica -1,6·10^-19 C) ruota all’interno di un atomo su una circonferenza di raggio 0,8·10^-10 m con una frequenza di 10^12 Hz. Calcola quale momento produce un campo magnetico esterno di intensità 15 T sull’atomo suddetto. Supponi che inizialmente il momento magnetico atomico sia disposto perpendicolarmente alle linee di forza del campo magnetico esterno. [4,825·10^-26 N·m]

4) Un protone (massa 1,67·10^-27 Kg, carica 1,6·10^-19 C) entra all’interno di un campo magnetico di intensità 10 T perpendicolarmente alle linee di forza con una velocità di 10^6 m/s. Calcola il raggio e la frequenza di rotazione dell’elettrone lungo la traiettoria circolare che si produce. [1,044 mm; 9,58·10^8 rad/s]

5) Una spira di forma rettangolare di dimensione 10×15 cm è disposta in un campo magnetico di intensità 0,12 T. La normale alla spira forma un angolo di 20° rispetto alle linee di forza di B. In 0,01 s la spira ruota aumentando l’angolo di +10°. Calcola la fem indotta. [0,0133 V]

Compito di informatica per lunedì 12/12/16

Classe JSemaforo realizzata in classe:

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;

import javax.swing.JComponent;

public class JSemaforo extends JComponent {

	public final int ROSSO = 0, VERDE = 1, GIALLO = 2;

	private boolean acceso = false;
	private int stato = ROSSO;

	public JSemaforo() {
		this.setPreferredSize(new Dimension(50, 150));

	}

	public void paintComponent(Graphics g) {
		super.paintComponent(g);

		g.setColor(Color.GRAY);
		g.fillRoundRect(0, 0, 50, 150, 10, 10);

		if (acceso) {
			switch (stato) {
			case ROSSO:
				g.setColor(Color.RED);
				g.fillOval(5, 5, 40, 40);
				break;
			case VERDE:
				g.setColor(Color.GREEN);
				g.fillOval(5, 105, 40, 40);
				break;
			case GIALLO:
				g.setColor(Color.YELLOW);
				g.fillOval(5, 55, 40, 40);
				break;
			}
		} else {
			g.setColor(Color.YELLOW);
			g.fillOval(5, 55, 40, 40);
		}
	}

	public void successivo() {
		stato++;
		if (stato > GIALLO)
			stato = ROSSO;
		repaint();
	}

	public int getStato() {
		return stato;
	}

	public void setStato(int stato) {
		this.stato = stato;
	}

	public boolean isAcceso() {
		return acceso;
	}

	public void setAcceso(boolean acceso) {
		this.acceso = acceso;
	}

}