Dessiner rectangle

bmartinkle -  
 bmartinkle -
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   Statut Membre Dernière intervention   73
 
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
bmartinkle
 
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   Statut Membre Dernière intervention   73
 
tu veux dessiner un rectangle de dimension variable selon la position de la souris?

Being normal is boring... being geek is interesting
0
bmartinkle
 
oui, c'est exactement cela
0
walidovich_85 Messages postés 608 Date d'inscription   Statut Membre Dernière intervention   73
 
a quoi sert le boutton alors??!!!
0
bmartinkle
 
a activer la commande du traçage de rectangle
mais sans bouton tu ferais comment ?
0