Dessiner courbe [Résolu]

Signaler
Messages postés
10
Date d'inscription
mercredi 21 mars 2012
Statut
Membre
Dernière intervention
11 décembre 2012
-
Messages postés
10
Date d'inscription
mercredi 21 mars 2012
Statut
Membre
Dernière intervention
11 décembre 2012
-
bonjour

je cherche afficher une courbe voici mon code mais rien ne se passe :

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;

import javax.swing.*;

public class test{
JFrame f = new JFrame("test");
JPanel p = new JPanel();
Graphics g;
public test(){
f.setSize(500, 500);
f.add(p);
f.setVisible(true);

}
void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D)g;
g2d.setColor(Color.black);
g2d.fillRect(10, 10, 100, 100);
g2d.drawLine(10, 20, 250, 100);

}
public static void main(String[] args) {
test t = new test();

}

}


si quelqu'un peux me dire ou je me plante

merci

12 réponses

Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
312
Salut,

Alors déjà, je te conseil de faire ca sur un JPanel que tu ajouteras dans ta frame et non sur la frame elle même.

Là, tu fais ton dessin sur ta fenêtre et tu ajoutes ensuite un panel qui va recouvrir le dessin (le panel p).
Messages postés
10
Date d'inscription
mercredi 21 mars 2012
Statut
Membre
Dernière intervention
11 décembre 2012

c'est bon j'ai trouver :

bt1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
Graphics g = getGraphics();
g.drawLine(10, 20, 100, 200);

}


});



Julien merci pour tous tes conseils
Messages postés
10
Date d'inscription
mercredi 21 mars 2012
Statut
Membre
Dernière intervention
11 décembre 2012

merci Julien

ca marche bien mais maintenant j'ai un autre problème
je souhaite que les courbes s'affiche apres avoir cliquer sur un boutons du coup j'ai ecrit ceci rien ne se passe

import java.awt.Color;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.Graphics;

public class courbes extends JPanel{
JButton bt1 = new JButton("OK");

public courbes(){

this.add(bt1);
bt1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event) {

}

public void paintComponent(Graphics g) {
this.paintComponent(g);
g.setColor(Color.black);
g.drawLine(0, 0, 100, 100);
g.setColor(Color.red);
g.drawLine(0, 100, 100, 0);

}

});
}





public static void main (String args[]) {
JFrame frame = new JFrame("Oval Sample");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
courbes cb = new courbes();
frame.add(cb);
frame.setSize(500, 500);
frame.setVisible(true);
}

}
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
312
Et bien c'est normal que rien ne se passe, tu n'as rien écrit dans l'actionListener de ton bouton
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
312
Tu n'as qu'à créer un booléen dans ta classe et s'il est à vrai tu fais le dessin et sinon, tu ne le fais pas.

Et tu passes ce booleen à vrai dans ton actionListener
Messages postés
10
Date d'inscription
mercredi 21 mars 2012
Statut
Membre
Dernière intervention
11 décembre 2012

je suis débutant en java

je viens de mettre ca mais ce n'est pas mieux :

public void actionPerformed(ActionEvent event) {

tt = true;
}

public void paintComponent(Graphics g) {
if (tt==true){

this.paintComponent(g);
g.setColor(Color.black);
g.drawLine(0, 0, 100, 100);
g.setColor(Color.red);
g.drawLine(0, 100, 100, 0);
}
}

});
Messages postés
10
Date d'inscription
mercredi 21 mars 2012
Statut
Membre
Dernière intervention
11 décembre 2012

y a surement un truc tout con que je vois pas
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
312
public void actionPerformed(ActionEvent event) {

tt = true;
repaint();
}

public void paintComponent(Graphics g) {
if (tt==true){

this.paintComponent(g);
g.setColor(Color.black);
g.drawLine(0, 0, 100, 100);
g.setColor(Color.red);
g.drawLine(0, 100, 100, 0);
}
}

});
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
312
Le repaint() sert à redessiner le panel (il faut appel à paintComponent
Messages postés
10
Date d'inscription
mercredi 21 mars 2012
Statut
Membre
Dernière intervention
11 décembre 2012

merci julien
mais comment appel t'on paintComponent?
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
312
On n'appelle jamais paintComponent, on appelle repaint() qui fait l'appel entre autres à paintComponent.

Tu as ajouté appelé cette méthode ? Ca marche ?
Messages postés
10
Date d'inscription
mercredi 21 mars 2012
Statut
Membre
Dernière intervention
11 décembre 2012

j'ai mis :

bt1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event) {
repaint();
}

public void paintComponent(Graphics g) {
this.paintComponent(g);
g.setColor(Color.black);
g.drawLine(0, 0, 100, 100);
g.setColor(Color.red);
g.drawLine(0, 100, 100, 0);

}

});

rien de mieux