Dessiner courbe [Résolu]

waylander35 10 Messages postés mercredi 21 mars 2012Date d'inscription 11 décembre 2012 Dernière intervention - 15 mai 2012 à 00:12 - Dernière réponse : waylander35 10 Messages postés mercredi 21 mars 2012Date d'inscription 11 décembre 2012 Dernière intervention
- 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
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 15 mai 2012 à 08:08
3
Merci
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).

Merci cs_Julien39 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 123 internautes ce mois-ci

Commenter la réponse de cs_Julien39
Meilleure réponse
waylander35 10 Messages postés mercredi 21 mars 2012Date d'inscription 11 décembre 2012 Dernière intervention - 21 mai 2012 à 10:19
3
Merci
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

Merci waylander35 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 123 internautes ce mois-ci

Commenter la réponse de waylander35
waylander35 10 Messages postés mercredi 21 mars 2012Date d'inscription 11 décembre 2012 Dernière intervention - 16 mai 2012 à 11:11
0
Merci
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);
}

}
Commenter la réponse de waylander35
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 16 mai 2012 à 11:30
0
Merci
Et bien c'est normal que rien ne se passe, tu n'as rien écrit dans l'actionListener de ton bouton
Commenter la réponse de cs_Julien39
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 16 mai 2012 à 11:31
0
Merci
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
Commenter la réponse de cs_Julien39
waylander35 10 Messages postés mercredi 21 mars 2012Date d'inscription 11 décembre 2012 Dernière intervention - 16 mai 2012 à 11:46
0
Merci
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);
}
}

});
Commenter la réponse de waylander35
waylander35 10 Messages postés mercredi 21 mars 2012Date d'inscription 11 décembre 2012 Dernière intervention - 16 mai 2012 à 11:47
0
Merci
y a surement un truc tout con que je vois pas
Commenter la réponse de waylander35
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 16 mai 2012 à 13:24
0
Merci
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);
}
}

});
Commenter la réponse de cs_Julien39
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 16 mai 2012 à 13:24
0
Merci
Le repaint() sert à redessiner le panel (il faut appel à paintComponent
Commenter la réponse de cs_Julien39
waylander35 10 Messages postés mercredi 21 mars 2012Date d'inscription 11 décembre 2012 Dernière intervention - 18 mai 2012 à 21:30
0
Merci
merci julien
mais comment appel t'on paintComponent?
Commenter la réponse de waylander35
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 19 mai 2012 à 08:44
0
Merci
On n'appelle jamais paintComponent, on appelle repaint() qui fait l'appel entre autres à paintComponent.

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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.