Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% ont trouvé ce document utile (0 vote)
89 vues13 pages

Panneau Controle

Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1/ 13

PANNEAU CONTROLE

package ihm;

import java.awt.Color;

import java.awt.Dimension;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.lang.reflect.Method;

import javax.swing.JButton;

import javax.swing.JLabel;

import javax.swing.JPanel;

import metier.* ;

public class PanneauControle extends JPanel implements ActionListener{

private JLabel lab ;

private Signal sig ;

private PanneauSaisieReel qa ;

private PanneauSaisieReel xa ;

private PanneauSaisieReel ya ;

private PanneauSaisieReel qb ;

private PanneauSaisieReel xb ;

private PanneauSaisieReel yb ;

private PanneauSaisieReel xm ;

private PanneauSaisieReel ym ;
private PanneauSaisieReel v ;

private double tmin = -5.0 ;

private double tmax = +5.0 ;

private double pas = 1.0 ;

public PanneauControle() {

super();

this.setPreferredSize(new Dimension(200,180));

lab = new JLabel("Panneau de Controle") ;

JButton bOk = new JButton("OK");

JButton breinitialiser = new JButton("TOUT REINITIALISER");

sig = new SyntheseDentDeScie( ) ;

qa = new PanneauSaisieReel("qa", false) ;

xa = new PanneauSaisieReel("xa", false) ;

ya = new PanneauSaisieReel("ya", false) ;

qb = new PanneauSaisieReel("qb", false) ;

xb = new PanneauSaisieReel("xb", false) ;

yb = new PanneauSaisieReel("yb", false) ;

xm = new PanneauSaisieReel("xm", false) ;

ym = new PanneauSaisieReel("ym", false) ;

bOk.addActionListener(this);
breinitialiser.addActionListener(this);

this.add(qa);

this.add(xa);

this.add(ya);

this.add(qb);

this.add(xb);

this.add(yb);

this.add(xm);

this.add(ym);

this.add(lab);

this.add(bOk);

this.add(breinitialiser);

FENETRE PRINCIPALE

package ihm;

import java.awt.Dimension;

import javax.swing.JFrame;

/**

*
* Les objets peuvent déclencher des évènements Events.

* Pour gérer les évènements, nous allons mettre en oeuvre des écouteurs

* (Listener).

* <br>

* Lors des étapes précédentes, les panneaux : contrôle, dessin et état étaient

* anonymes.

* <br>

* A la prochaine étape ils vont interagir. Nous allons dès à présent associer

* des noms à leurs instances afin que ces interactions soient possibles.

* @author C. Duclou

* @version 02

*/

public class FenetrePrincipale extends JFrame{

public FenetrePrincipale() {

super() ;

this.setTitle("Projet info");

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setLocation(400, 100);

this.setMinimumSize(new Dimension(800,400));

this.add(new PanneauPrincipal());

this.pack();

this.setVisible(true);

}
PANNEAU PRINCIPAL

package ihm;

import courbe.Courbe;

import java.awt.BorderLayout;

import javax.swing.JPanel;

/**

* @author C. Duclou

* @version 05

*/

public class PanneauPrincipal extends JPanel {

Courbe courbe = null ;

public PanneauPrincipal() {

super();

this.setLayout(new BorderLayout());

PanneauDessin panDessin = new PanneauDessin() ;

courbe = new Courbe() ;

PanneauControle panControle = new PanneauControle() ;


panControle.setCourbe(courbe);

panControle.setPanDessin(panDessin);

this.add(panControle, BorderLayout.WEST);

this.add(panDessin, BorderLayout.CENTER);

PANNEAU SAISIE REELS

package ihm;

import java.awt.Dimension;

import java.awt.GridLayout;

import java.beans.PropertyChangeEvent;

import java.beans.PropertyChangeListener;

import java.text.DecimalFormat;

import java.text.NumberFormat;

import javax.swing.JFormattedTextField;

import javax.swing.JLabel;

import javax.swing.JPanel;

/**

* Cette classe permet d'opérer la saisie d'un nombre réel.

* <br>

* Le résultat de la saisie est stocké dans l'attribut val de la classe.

* <br>
* Cette classe peut être utilisée dans tout programme.

* <br>

* La classe implémente PropertyChangeListener,

* ainsi

* <br>

* lorsque le champ de saisie jft perd le focus,

* <br>

* si son contenu a changé,

* <br>

* alors la méthode propertyChange() est exécutée.

* <br>

* La méthode propertyChange() affecte l'attribut "val".

* <br> dans la version 02, ajout de la mérhode setVat(double)

* @author C. Duclou

* @version 02

*/

public class PanneauSaisieReel extends JPanel implements PropertyChangeListener {

/**

* Variable de stockage de la valeur saisie par l'utilisateur

*/

private double val ;

/**

* Etiquete de la variable saisie

*/

private JLabel lab ;

private final JFormattedTextField jft ;

private final NumberFormat reelFormat;


/**

* @param labTexte le texte de l'étiquette (JLabel) qui sera affichée.

* @param formatScientifique si "true" alors saisie/affichage en notation

* scientifique Sinon saisie/affichage en notation virgule flottante

*/

public PanneauSaisieReel(String labTexte, Boolean formatScientifique) {

super() ;

this.val = 0.0 ;

lab = new JLabel(labTexte) ;

if(formatScientifique){

reelFormat = new DecimalFormat("0.#E0");

} else{

reelFormat = new DecimalFormat();

reelFormat.setMinimumFractionDigits(2);

jft = new JFormattedTextField(reelFormat) ;

jft.setColumns(30);

jft.setValue(this.val);

/**

* associe la méthode propertyChange() définie plus ci-dessous

* à l'écouteur PropertyChangeListener : un changement de contenu

* du champ jft, déclenche l'exécution de propertyChange()

*/

jft.addPropertyChangeListener("value", this);

this.setLayout(new GridLayout(0,2)) ; // 2 colonnes


this.setPreferredSize(new Dimension(200,20));

this.add(lab);

this.add(jft);

/**

* @return la valeur saisie, un nombre réel

*/

public double getVal() {

return this.val;

/**

* @param val est affectée à la valeur

*/

public void setVal(double val) {

this.val = val ;

jft.setText(""+val);

/**

* Action executée lors de la modification du champ de saisie

* @param e evènement ayant déclenché l'action dans le panneau,

* dans le cas présent ça ne peut être qu'une

* une modification du champ "jft" qui est le seul associé à l'écouteur

* PropertyChangeListener

*/
@Override

public void propertyChange(PropertyChangeEvent e) {

// récupèreation de la valeur saisie dans l'attribut val

val = (((Number)jft.getValue()).doubleValue() );

// mise à jour du champ de saisie

jft.setText(String.format("%0,2f", val));

// affichage de la valeur saisie dans la console

System.out.format("PanReel propertyChange :\n\tthis.val saisie (%s) = %g\n",

lab.getText(), val) ;

GENCOURBE

package courbe;

/**

* @author C. Duclou

* @version 01

*/

public interface GenCourbe {

/**

* la méthode genCourbe doit produire une liste de coordonnées

* de points qui sont enregistrés dans une Courbe.

* Cette version calcul le pas d'incrément en fonctiond de la fréquence et

* fixe les bornes de l'intervalle de l'échantillon

*
* @param courbe la courbe à affecter

*/

public void GenCourbe(Courbe courbe) ;

COURBE

package courbe;

/**

* @author C. Duclou

* @version 01

*/

public interface GenCourbe {

/**

* la méthode genCourbe doit produire une liste de coordonnées

* de points qui sont enregistrés dans une Courbe.

* Cette version calcul le pas d'incrément en fonctiond de la fréquence et

* fixe les bornes de l'intervalle de l'échantillon

* @param courbe la courbe à affecter

*/

public void GenCourbe(Courbe courbe) ;

}
COORDONNEES

package courbe;

/**

* La classe Coordonnees donne un objet qui enregistre un point du plan ℝ x ℝ

* @author C. Duclou

* @version 01

*/

public class Coordonnees {

/**

* abscisse du point

*/

private double x ;

/**

* ordonnée du point

*/

private double y ;

public Coordonnees(double x, double y) {

this.x = x;

this.y = y;

/**

* @return abscisse du point

*/

public double getX() {


return x;

/**

* @return ordonnée du point

*/

public double getY() {

return y;

Vous aimerez peut-être aussi