Dessiner rectangle

Fermé
bmartinkle - 22 mars 2013 à 23:22
 bmartinkle - 23 mars 2013 à 12:33
Bonjour, j'ai un léger soucis, je dois créer une sorte d'application paint mais je n'arrive pas a coder mon bouton pour dessiner des rectangles sur mon Jpanel, donc pourriez vous m'aider avec le code s'il vous plait ?

Alors, j'ai un JButton Rectangle et j'aimerais que lorsque l'on clique dessus, que cela puissa actionner un MouseListener de mon JPanel qui grace au MousePressed et au MouseReleased va pouvoir me dessiner mon Rectangle mais je ne sais absolument pas comment coder cette commande, pourriez vous m'aider s'il vous plait ?

Je vous remercie d'avance



4 réponses

walidovich_85 Messages postés 608 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 25 octobre 2015 73
23 mars 2013 à 02:18
Bonjour,

enfaite, tu veux dessiner un rectangle dans ta fenetre, alors logiquement, le bouton doit agir sur la fenetre (et ses composantes) pour dessiner le rectangle.

MouseListner permet de traduire les actions de la sourie sur une composante. Mais, ce que t'a besoin, c la methode ActionListener qui permet d'ajouter une action suite à un click par exemple.

voila un code exemple:

import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Fenetre extends JFrame implements ActionListener {

private JLabel dessinVide= new JLabel("Pas de dessin");
private Panneau dessinremplis= new Panneau();
public Fenetre(){
JPanel panel= new JPanel();
JButton rectangle= new JButton("Dessiner Réctangle");
panel.setLayout(new BorderLayout());
rectangle.addActionListener(this);
panel.add(dessinVide, BorderLayout.NORTH);
panel.add(rectangle, BorderLayout.SOUTH);

this.setTitle("Dessin d'un rectangle");
this.setSize(500, 300);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setContentPane(panel);
this.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
this.dessinVide.setText("Voila ton rectangle");
this.add(dessinremplis, BorderLayout.CENTER);
this.validate();
this.repaint();
}
class Panneau extends JPanel{
@Override
public void paintComponent(Graphics g){
g.fillRect(40, 40, 175, 100);
}
}
public static void main(String[] agr){
Fenetre fen = new Fenetre();
}
}

Bonne chance
0
Cependant j'aimerais que les dimensions du rectangle soit défini par la souris sur mon JPanel parce que sinon, je peux construire que des Rectangle de la meme dimension non ?
0
walidovich_85 Messages postés 608 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 25 octobre 2015 73
Modifié par walidovich_85 le 23/03/2013 à 11:34
tu veux dessiner un rectangle de dimension variable selon la position de la souris?

Being normal is boring... being geek is interesting
0
oui, c'est exactement cela
0
walidovich_85 Messages postés 608 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 25 octobre 2015 73
23 mars 2013 à 12:02
a quoi sert le boutton alors??!!!
0
a activer la commande du traçage de rectangle
mais sans bouton tu ferais comment ?
0