IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Java Discussion :

centre de rectangle avec souris


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 3
    Par défaut centre de rectangle avec souris
    bonjour,
    je veux afficher le centre d'un rectangle tracé a l'aide de souris.
    j'ai implementé le code de tracage mais j'ai trouvé un pb d'affichage de centre
    voila un portion de code.
    merci de me repondre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    class Selection extends MouseAdapter implements MouseMotionListener {
    // Premier point selectionné
    int selx1;
    int sely1;
    // Deuxième point selectionné
    int selx2;
    int sely2;
    // ةcoute des événements de souris
    public void mousePressed(MouseEvent event) {
    selx1 = selx2 = event.getX();
    sely1 = sely2 = event.getY();
    zoomButton.setEnabled(false);
    repaint();
    }
    public void mouseDragged(MouseEvent event) {
    selx2 = event.getX();
    sely2 = event.getY();
    zoomButton.setEnabled(selx1 != selx2 && sely1 != sely2);
    repaint();
    }
    public void mouseMoved(MouseEvent event) {
    }
    // Retourne le rectangle qui délimite la zône selectionnée
    // Ce rectangle utilise les coordonnées du JPanel en pixels.
    Rectangle getRectangle() {
    // Calcul du rectangle
    int x = Math.min(selx1, selx2);
    int y = Math.min(sely1, sely2);
    int width = Math.abs(selx1 - selx2);
    int height = Math.abs(sely1 - sely2);
    return new Rectangle(x, y, width, height);
    }
    }
    }
    static class Zone {
    private double x; // Absicsse du coin supérieur gauche
    private double y; // Ordonnée du coin supérieur gauche
    private double width; // Largeur
    private double height; // Hauteur
    Zone(double x, double y, double width, double height) {
    this.x = x;
    this.y = y;
    this.width = width;
    this.height = height;
    }
    double getX() { return x; }
    double getY() { return y; }
    double getWidth() { return width; }
    double getHeight() { return height; }
    }
    }

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 099
    Par défaut
    "le code de tracage" -> Si c'est du dessin que tu parles car je ne vois rien de cela jusque la mon ami .

    Serait-ce quelque chose du genre que tu cherches ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
     
    class JPanel extends javax.swing.JPanel implements MouseListener, MouseMotionListener
    {
     
    	private static final long	serialVersionUID	= 1L;
    	Rectangle2D rect = null;  //  @jve:decl-index=0:
     
    	/**
             * @param args
             */
    	public static void main(String[] args)
    	{
    		JFrame frame = new JFrame();
    		JPanel p = new JPanel();
    		frame.add(p, BorderLayout.CENTER);
    		frame.setVisible(true);
     
    	}
     
    	/**
             * This is the default constructor
             */
    	public JPanel()
    	{
    		super();
    		initialize();
    		addMouseListener(this);
    		addMouseMotionListener(this);
    	}
     
    	/**
             * This method initializes this
             * 
             * @return void
             */
    	private void initialize()
    	{
    		this.setSize(300, 200);
    		this.setLayout(new GridBagLayout());
     
    	}
     
    	public void paint(Graphics g)
    	{
    		// Dessine le rectangle.
    		g.setColor(Color.gray);
    		g.fillRect(0,0, getWidth(), getHeight());
    		dessineTonRectangle(g, rect);
     
    	}
     
    	private void dessineTonRectangle(Graphics g, Rectangle2D rect)
    	{
     
    		if (rect!=null)
    		{
    			g.setColor(Color.red);
    			g.drawRect((int)rect.getX(),(int)rect.getY(),(int)rect.getWidth(),(int)rect.getHeight());
    			g.setColor(Color.BLACK);
    			g.fillRect((int)rect.getCenterX()-2,(int)rect.getCenterY()-2,4,4);
    		}
    	}
     
     
    	@Override
    	public void mousePressed(MouseEvent e)
    	{
    		if (rect==null)
    			rect = new Rectangle2D.Double(e.getX(), e.getY(), 0, 0);
    		rect.setRect(e.getX(), e.getY(), 0, 0);
    		repaint();
     
    	}
     
     
     
    	@Override
    	public void mouseDragged(MouseEvent e)
    	{
    		rect.setRect(rect.getX(), rect.getY(), e.getX()-rect.getX(),  e.getY()-rect.getY());
    		repaint();
    	}
     
     
    }
    (Il manque qlq bouts pour que ca compile mais ca fonctionne)
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [Débutant] Déplacer des Rectangles avec la souris
    Par Altair evilous dans le forum Développement Windows
    Réponses: 1
    Dernier message: 17/04/2014, 10h34
  2. Déplacer rectangle avec souris
    Par exile69 dans le forum C#
    Réponses: 5
    Dernier message: 26/09/2011, 23h25
  3. Réponses: 5
    Dernier message: 19/07/2011, 16h03
  4. [Débutant] séléctionner un rectangle avec la souris
    Par zepek dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 10/02/2009, 16h48
  5. Dessiner un rectangle avec bords et texte ...
    Par Djedjeridoo dans le forum Composants VCL
    Réponses: 3
    Dernier message: 16/06/2003, 17h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo