Dessiner courbe

Résolu
waylander35 Messages postés 10 Date d'inscription mercredi 21 mars 2012 Statut Membre Dernière intervention 11 décembre 2012 - 15 mai 2012 à 00:12
waylander35 Messages postés 10 Date d'inscription mercredi 21 mars 2012 Statut Membre Dernière intervention 11 décembre 2012 - 21 mai 2012 à 10:19
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

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
15 mai 2012 à 08:08
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).
3
waylander35 Messages postés 10 Date d'inscription mercredi 21 mars 2012 Statut Membre Dernière intervention 11 décembre 2012
21 mai 2012 à 10:19
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
3
waylander35 Messages postés 10 Date d'inscription mercredi 21 mars 2012 Statut Membre Dernière intervention 11 décembre 2012
16 mai 2012 à 11:11
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);
}

}
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
16 mai 2012 à 11:30
Et bien c'est normal que rien ne se passe, tu n'as rien écrit dans l'actionListener de ton bouton
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
16 mai 2012 à 11:31
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
0
waylander35 Messages postés 10 Date d'inscription mercredi 21 mars 2012 Statut Membre Dernière intervention 11 décembre 2012
16 mai 2012 à 11:46
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);
}
}

});
0
waylander35 Messages postés 10 Date d'inscription mercredi 21 mars 2012 Statut Membre Dernière intervention 11 décembre 2012
16 mai 2012 à 11:47
y a surement un truc tout con que je vois pas
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
16 mai 2012 à 13:24
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);
}
}

});
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
16 mai 2012 à 13:24
Le repaint() sert à redessiner le panel (il faut appel à paintComponent
0
waylander35 Messages postés 10 Date d'inscription mercredi 21 mars 2012 Statut Membre Dernière intervention 11 décembre 2012
18 mai 2012 à 21:30
merci julien
mais comment appel t'on paintComponent?
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
19 mai 2012 à 08:44
On n'appelle jamais paintComponent, on appelle repaint() qui fait l'appel entre autres à paintComponent.

Tu as ajouté appelé cette méthode ? Ca marche ?
0
waylander35 Messages postés 10 Date d'inscription mercredi 21 mars 2012 Statut Membre Dernière intervention 11 décembre 2012
21 mai 2012 à 09:44
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
0
Rejoignez-nous