Dessiner courbe [Résolu]

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

Votre réponse

12 réponses

Meilleure réponse
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
272
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).

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 89 internautes nous ont dit merci ce mois-ci

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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 89 internautes nous ont dit merci ce mois-ci

Commenter la réponse de waylander35
Messages postés
10
Date d'inscription
mercredi 21 mars 2012
Dernière intervention
11 décembre 2012
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
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
272
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
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
272
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
Messages postés
10
Date d'inscription
mercredi 21 mars 2012
Dernière intervention
11 décembre 2012
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
Messages postés
10
Date d'inscription
mercredi 21 mars 2012
Dernière intervention
11 décembre 2012
0
Merci
y a surement un truc tout con que je vois pas
Commenter la réponse de waylander35
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
272
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
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
272
0
Merci
Le repaint() sert à redessiner le panel (il faut appel à paintComponent
Commenter la réponse de cs_Julien39
Messages postés
10
Date d'inscription
mercredi 21 mars 2012
Dernière intervention
11 décembre 2012
0
Merci
merci julien
mais comment appel t'on paintComponent?
Commenter la réponse de waylander35
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
272
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
Messages postés
10
Date d'inscription
mercredi 21 mars 2012
Dernière intervention
11 décembre 2012
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.