| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 
 |  
import javax.swing.* ;
import java.awt.* ;
import java.awt.event.* ;
 
@SuppressWarnings("serial")
class MaFenetre extends JFrame implements ActionListener
{ 
	JTextField vRoute = new JTextField ("120");// <-- zone de saisie du cap déclaré au bon endroit !
	MaFenetre ()
	{ 
		setTitle ("Dessiner aigguille avec repaint") ;
		setSize (400, 400) ;
		Container contenu = getContentPane() ;
       // creation paneau pour le dessin
		pan = new Panneau() ;
		pan.setBackground (Color.cyan) ;    
		pan.add(vRoute);
		vRoute.addActionListener (this);
		contenu.add(pan) ;
       // crÈation bouton "Aiguille"
		aig = new JButton ("Aiguille") ;
		contenu.add(aig, "South") ;
		aig.addActionListener (this) ;
	}
		public void actionPerformed (ActionEvent ev)
	{
		pan.repaint() ;   // pour forcer la peinture du paneau des maintenant
	}
	private Panneau pan ;
	private JButton aig ; // le bouton ne sert à rien pour l'instant, c'est la saisie qui déclenche l'affichage
 
	class Panneau extends JPanel
	{
		public void paintComponent(Graphics g)
 
		{ 
			super.paintComponent(g) ;
			double capRose = Double.valueOf(vRoute.getText()); // lecture du champ de saisie du cap
			capRose = Routines.roseToTrigo(capRose); // routine de changement de repaire pour les angles
			int[] tabPoints  = new int[10];  //création du tableau qui va contenir les coordonnées des 5 points de l'aiguille
			tabPoints = Routines.calcPoints(capRose); // calcule les points permettant de dessiner l'aiguille
			g.drawLine(tabPoints[0],tabPoints[1], tabPoints[8], tabPoints[9]);
			g.drawLine(tabPoints[8],tabPoints[9], tabPoints[2], tabPoints[3]);
			g.drawLine(tabPoints[2],tabPoints[3], tabPoints[4], tabPoints[5]);
			g.drawLine(tabPoints[4],tabPoints[5], tabPoints[6], tabPoints[7]);
			g.drawLine(tabPoints[6],tabPoints[7], tabPoints[0], tabPoints[1]);
		}
	}
}
 
 
public class Repaint
{ public static void main (String args[])
  {
	MaFenetre fen = new MaFenetre() ;
    fen.setVisible(true) ;
 
  }
} | 
Partager