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
|
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