Dessiner rectangle
bmartinkle
-
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
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
A voir également:
- Dessiner rectangle
- Dessiner un tableau - Guide
- Smiley rectangle barré signification - Forum LibreOffice / OpenOffice
- Signification rectangle avec croix dedans ✓ - Forum Samsung
- Dans la présentation à télécharger, sans modifier leur position dans la feuille : passez le rectangle noir en arrière-plan. passez le rectangle bleu au premier plan. passez le rectangle hachuré au premier plan. quel mot apparaît ? - Forum Graphisme
- Open office image arriere plan ✓ - Forum LibreOffice / OpenOffice
4 réponses
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
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
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 ?