1 2 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 61 62 63 64
   |  import javax.swing.* ;
 
import java.awt.* ;
import java.awt.event.* ;
import java.util.Scanner;
@SuppressWarnings("serial")
 
class MaFenetre extends JFrame implements ActionListener
{ 
	MaFenetre ()
  { 
	setTitle ("Dessiner aigguille avec repaint") ;
    setSize (400, 500) ;
    Container contenu = getContentPane() ;
       // creation paneau pour le dessin
    pan = new Panneau() ;
    pan.setBackground (Color.cyan) ;
 
    JTextField vRoute = new JTextField (); // <-- pour saisir le cap
    vRoute.setText("000");
    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 ;
}
class Panneau extends JPanel
{ 	 
	public void paintComponent(Graphics g)
 
  { 
	super.paintComponent(g) ;
	//saisie clavier du cap car je n'arrive pas à récupérer la valeur de vRoute du JTextField
  	Scanner lectureClavier = new Scanner(System.in);
  	System.out.print("Entrez la route : ");
	double capRose = lectureClavier.nextDouble();
 
  	capRose = Routines.roseToTrigo(capRose); // routine de changement de repaire pour les angles
  	int[] tabPoints  = new int[10];
	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