Grafico settimanale delle temperature

Consultare anche il PDF presente alla pagina https://liceocuneo.it/oddenino/informatica/java/interfacce-per-la-gestione-degli-eventi/

JGrafico

package grafico;

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

import javax.swing.JPanel;
import javax.swing.border.LineBorder;

public class JGrafico extends JPanel implements MouseMotionListener {

	String[] giorni = new String[7];
	String[] temperature = new String[9];

	public JGrafico() {
		setBorder(new LineBorder(new Color(0, 0, 0), 2));
		setForeground(Color.BLACK);
		this.setPreferredSize(new Dimension(200, 200));
		this.setBackground(Color.WHITE);

		giorni[0] = "Sun";
		giorni[1] = "Mon";
		giorni[2] = "Tue";
		giorni[3] = "Wed";
		giorni[4] = "Thu";
		giorni[5] = "Fri";
		giorni[6] = "Sat";

		temperature[0] = "40";
		temperature[1] = "30";
		temperature[2] = "20";
		temperature[3] = "10";
		temperature[4] = "0";
		temperature[5] = "-10";
		temperature[6] = "-20";
		temperature[7] = "-30";
		temperature[8] = "-40";

		this.addMouseMotionListener(this);
	}

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

		int w = this.getWidth(), h = this.getHeight();
		g.drawLine(0, h / 2, w, h / 2);

		int w7 = w / 7, w14 = w / 14, h2 = h / 2;
		for (int i = 0; i < 7; i++) {
			g.drawLine(w14 + i * w7, h2 - 10, w14 + i * w7, h2 + 10);
			g.drawString(giorni[i], w14 + i * w7, h2 + 25);
		}
		int h10 = h / 10;
		for (int i = 0; i < 9; i++) {
			g.drawLine(0, h10 + i * h10, 10, h10 + i * h10);
			// g.drawString(temperature[i], 10, h10+i*h10);
		}
	}

	@Override
	public void mouseDragged(MouseEvent arg0) {
	}

	@Override
	public void mouseMoved(MouseEvent me) {
		int x = me.getX();
		int y = me.getY();
		System.out.println(x+" "+y);
	}

}