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

Interfaces Graphiques en Java Discussion :

Dessiner avec ma souris dans une fenêtre


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mars 2015
    Messages : 10
    Points : 12
    Points
    12
    Par défaut Dessiner avec ma souris dans une fenêtre
    Salut, j'essaie de faire une petite appli qui permet de dessiner avec la souris dans un fenêtre JFrame. En essayant de faire ca, j'ai deux souci que je trouve bizarre et que j'arrive pas à resoudre!

    De un, j'ai un décalage entre l'endroit ou je presse le bouton de la souris et l'endroit ou je vois le trait que je veux tracer apparaître (étrange n'est ce pas!!?)

    De deux, dans ma JFrame j'ai deux JPanel, un pour dessiner au centre et l'autre au nord, comme gestionnaire de positionnement j'utilise un borderlayout, donc mon jpanel dans lequel je veux dessiner est centré mais j'arrive pas à ne pas sortir les trace de ma souris qui deborde toujours en suivant mes mouvements sur toute la fenêtre. Svp aidez moi please je cale net sur ça! Voici mon code :

    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
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
            private int x1, int y1;
            private JPanel milieu = new JPanel();
     
    	private JMenuBar jmb = new JMenuBar();
    	private JMenu affichage = new JMenu("Affichage");
    	private JMenu aide = new JMenu("Aide?");
    	private JMenu couleur = new JMenu("Couleur");
    	private JMenu forme = new JMenu("Forme");
     
    	private JMenuItem carre = new JMenuItem("Carré");
    	private JMenuItem rond = new JMenuItem("Rond");
    	private JMenuItem effacer = new JMenuItem("Effacer");
    	private JMenuItem texteAide = new JMenuItem("Texte d'aide");
    	private JMenuItem boiteAide = new JMenuItem("Fenêtre d'aide");
    	private JMenuItem rouge = new JMenuItem("rouge");
    	private JMenuItem bleu = new JMenuItem("bleu");
    	private JMenuItem vert = new JMenuItem("vert");
    	private JMenuItem jaune = new JMenuItem("jaune");
    	private JMenuItem gris = new JMenuItem("gris");
    	private JMenuItem orange = new JMenuItem("orange");
    	private JMenuItem violet = new JMenuItem("violet");
    	private JMenuItem noir = new JMenuItem("noir");
    	private JMenuItem blanc = new JMenuItem("blanc");
     
    	private JToolBar barreOutil = new JToolBar();
    	private JButton boutonRouge = new JButton("");
    	private JButton boutonBleu = new JButton("");
    	private JButton boutonVert = new JButton("");
    	private JButton boutonJaune = new JButton("");
    	private JButton boutonGris = new JButton("");
    	private JButton boutonOrange = new JButton("");
    	private JButton boutonViolet = new JButton("");
    	private JButton boutonNoir = new JButton("");
    	private JButton boutonBlanc = new JButton("");
    	protected Fenetre()
    	{
    		this.setTitle("Boite Ã* dessin");
    		this.setSize(430, 430);
    		this.setLocationRelativeTo(null);
    		this.setResizable(false);
    		this.setLayout(new BorderLayout(1,1));
     
    		milieu.setBackground(new Color(194,211,231));
    		this.add(milieu, BorderLayout.CENTER);
     
    		affichage.add(couleur);affichage.add(effacer);affichage.add(forme);forme.add(carre);forme.add(rond);
    		couleur.add(blanc);couleur.add(gris);couleur.add(jaune);couleur.add(vert);couleur.add(bleu);couleur.add(rouge);
    		couleur.add(orange);couleur.add(violet);couleur.add(noir);
    		aide.add(texteAide);aide.add(boiteAide);
    		jmb.add(affichage);jmb.add(aide);jmb.setBackground(Color.yellow);
    		this.setJMenuBar(jmb);
     
    		boutonRouge.setBackground(Color.red);boutonBleu.setBackground(Color.blue);boutonVert.setBackground(Color.green);boutonGris.setBackground(Color.gray);
    		boutonBlanc.setBackground(Color.white);boutonNoir.setBackground(Color.black);boutonViolet.setBackground(new Color(163,73,164));boutonOrange.setBackground(Color.orange);
    		boutonJaune.setBackground(Color.yellow);
     
    		barreOutil.add(boutonRouge);barreOutil.add(boutonBleu);barreOutil.add(boutonGris);barreOutil.add(boutonOrange);
    		barreOutil.add(boutonBlanc);barreOutil.add(boutonVert);barreOutil.add(boutonViolet);barreOutil.add(boutonNoir);
    		barreOutil.add(boutonJaune);
    		barreOutil.setOrientation(JToolBar.HORIZONTAL);
    		barreOutil.setFloatable(false);
    		barreOutil.setPreferredSize(new Dimension(400,18));
    		this.add(barreOutil, BorderLayout.NORTH);
     
    		rond.addActionListener(this);vert.addActionListener(this);jaune.addActionListener(this);blanc.addActionListener(this);carre.addActionListener(this);
    		effacer.addActionListener(this);bleu.addActionListener(this);gris.addActionListener(this);noir.addActionListener(this);orange.addActionListener(this);
    		texteAide.addActionListener(this);rouge.addActionListener(this);orange.addActionListener(this);violet.addActionListener(this);
     
    		boutonRouge.addActionListener(this);boutonJaune.addActionListener(this);boutonOrange.addActionListener(this);boutonViolet.addActionListener(this);
    		boutonBleu.addActionListener(this);boutonVert.addActionListener(this);boutonGris.addActionListener(this);boutonNoir.addActionListener(this);
     
    		//this.addMouseListener(this);
    		milieu.addMouseListener(this);
    		milieu.addMouseMotionListener(this);
    	}
     
    	protected void showWindow()
    	{
    		this.setVisible(true);
    	}
     
    	@Override
    	public void mousePressed(MouseEvent e) {
    		// TODO Auto-generated method stub
    		int x1 = e.getX();
                    int y1 = e.getY();
    	}
     
    	@Override
    	public void mouseReleased(MouseEvent arg0) {
    		// TODO Auto-generated method stub
     
    	}
    	@Override
    	public void mouseDragged(MouseEvent e) {
    		// TODO Auto-generated method stub
    		Graphics g = getGraphics( );
                     int xFin = e.getX( );
                     int yFin = e.getY( );
                    g.drawLine(x1, y1, xFin, yFin);;
    	}
     
    	@Override
    	public void mouseMoved(MouseEvent arg0) {
    		// TODO Auto-generated method stub
     
    	}
     
    	@Override
    	public void mouseClicked(MouseEvent arg0) {
    		// TODO Auto-generated method stub
    	}
     
    	@Override
    	public void mouseEntered(MouseEvent arg0) {
    		// TODO Auto-generated method stub
    	}
     
    	@Override
    	public void mouseExited(MouseEvent arg0) {
    		// TODO Auto-generated method stub
    	}
     
    	@Override
    	public void actionPerformed(ActionEvent arg0) {
    		// TODO Auto-generated method stub
     
    	}

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    C'est dommage tu y est presque :

    Il te faut des variable locales à la classe pour retenir tes position de souris.
    Il ne faut pas dessiner dans l'event de la souris.
    Il te manque en fait la fonction de dessin qui va prendre tes coordonnées que tu updatera au moment des clicks et autres. (en pensant a faire un repaint()).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void paint(Graphics g)
    {
    g.drawLine(xSrc, ySrc, xDst, yDst);
    }
    (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. [Virtual Pascal] Dessiner dans une fenêtre avec la librairie OWL
    Par Roland Chastain dans le forum Autres IDE
    Réponses: 15
    Dernier message: 31/08/2012, 19h15
  2. Dessiner des objets OpenGL dans une fenêtre
    Par dourouc05 dans le forum Téléchargez
    Réponses: 0
    Dernier message: 09/11/2010, 20h52
  3. Réponses: 0
    Dernier message: 13/04/2009, 12h53
  4. Réponses: 6
    Dernier message: 18/09/2008, 12h35
  5. Selection avec la souris dans une zone de texte
    Par GESCOM2000 dans le forum IHM
    Réponses: 8
    Dernier message: 11/02/2006, 10h12

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