Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : un graphique permanent dans un JPanel (déburant) [ ] (budhax)

mercredi 1 mars 2006 à 15:46:54 | un graphique permanent dans un JPanel (déburant)

budhax

le graphique s'efface derrière un menu ou une autre fenêtre. comment garde le graphique permanent. l'énoncé de l'exercice donne cet indice:

Image img=new BufferedImage(200,200,BufferedImage.TYPE_INT_RGB);
Graphics imgGraph=img.getGraphics();

public void paintComponent(Graphics g){
super.paintComponent(g);
g.drawImage(img,0,0,this);
}




fichier: DeVinci2.java
-------------------------------------------------



import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.colorchooser.*;
// application de dessin basique
public class DeVinci2 extends JFrame implements MouseMotionListener,ActionListener
{
private int xPrec, yPrec;
private JPanel p;
private JMenu menu;
private JMenuBar menuBar;
private JMenuItem couleurArticle,effacerArticle,quitterArticle;
private Color currCol;
  private JColorChooser tcc;

public static void main(String args[])
{
new DeVinci2();
}

public DeVinci2() {
super("Un petit programme de dessin DeVinci 2");
p=new JPanel();
p.addMouseMotionListener(this);

// instenciation du menu et ses articles
menuBar=new JMenuBar();
setJMenuBar(menuBar);
//p.add(menuBar);
menu=new JMenu("Outils");
couleurArticle=new JMenuItem("Couleur...");
menu.add(couleurArticle);
couleurArticle.addActionListener(this);
effacerArticle=new JMenuItem("Effacer");
menu.add(effacerArticle);
effacerArticle.addActionListener(this);
menu.addSeparator();
quitterArticle=new JMenuItem("Quitter");
menu.add(quitterArticle);
quitterArticle.addActionListener(this);
menuBar.add(menu);

//Set up color chooser for setting text color
//tcc = new JColorChooser(banner.getForeground());
tcc = new JColorChooser(Color.BLUE);
//tcc.getSelectionModel().addChangeListener(this);
tcc.setBorder(BorderFactory.createTitledBorder("Choose Text Color"));
//tcc.setVisible(false);

this.getContentPane().add(p);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(600,600);
//this.pack();
this.setLocationRelativeTo(null);
this.setVisible(true);
}

// méthode de l'interface (MouseMotionListener) implementée par la classe courrante
// elle DOIT donc être déclarée
// elle définit les actions à executer par l'écouteur au moment des événements capturés
public void mouseDragged(MouseEvent e) { // le curseur est glissé (avec un bouton enfoncé)
Graphics g=p.getGraphics();
g.setColor(this.currCol);
g.drawLine(xPrec, yPrec,e.getX(),e.getY()); // trace une ligne entre 2 porsistion du curseur enfoncé
this.mouseMoved(e);
}

// définit les actions à executer quand le bouton (gauche ou droite) de la souris est relaché
public void mouseMoved(MouseEvent e) { // le curseur est déplacé
xPrec=e.getX(); // capture de la position X du curseur
yPrec=e.getY(); // capture de la position Y du curseur
}

// on définit les actions à executer par l'écouteur au moment des événements capturés
public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(this.couleurArticle)) {
// affiche un dialogue de selection d'une couleur
this.currCol=this.tcc.showDialog(couleurArticle,"choisir une couleur",this.currCol);
}
if (e.getSource().equals(this.effacerArticle)) {
//??? code pour effacer le graphique du JPanel ;
}
if (e.getSource().equals(this.quitterArticle)) {
System.exit(0); // quitte le programme courant
}
}
}



Cette discussion est classé dans : menu, public, private, import, tcc


Répondre à ce message

Sujets en rapport avec ce message

je arrive pas a mettre mes icons dans mon menu [ par laulaut ] voila le code que j'ai mais il a pas de icon devant je comprend pasOption ExplicitPrivate Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) A Private ou Public [ par Niaphron ] Je voudrais savoir si je déclare une variable en Private cela prendra plus de place mémoire qu'une déclaration en public dans un module !Qq peux me do La difference entre Public et Private [ par Linuss ] Je c, je suis 1 nb.Mais ki n'essaie rien n'a ri1.Alors, éske qq pourrait m'expliquer la difference entre la fonction "Public" et "Private" ???ET évent fonctions "static - private - public" [ par deseperate ] Sa quels cas l'utiliser ?Quelle différences entre fonctions private - public - static ? objet vide entre deux fonctions d'import !! Grrr comprends po [ par darkbol ] Bonjour!J'ai créé une appli permettant d'utiliser qq fonctions d'un logiciel extérieur (SURFER, logiciel de carte)... Elle contient 2 forms avec sur c Private / Public ?! [ par Seth77 ] Slu Comment bien utiliser la declaration private ou public ? pour par exemple la declaration de : Private Declare Function GetCursorPos Lib "user32" Api - BackColor (experts) [ par davidauche ] Bah après une galère pour détecter le message WM_CTLCOLORSTATIC (avec une méthode conne mais ça marche :) ).  Maintenant je me trouve devant une autre Private ? Public ou module ? [ par Teclis01 ] Voilà je voudrais savoir dans quel cas declarer des variables  de type public privé ou dans un module pour faire un programme propre Changer le type (private public) d'une variable de classe [ par bizibiz17 ] bonjour,Je souhaiterais savoir s'il est possible de modifier le type d'une variable de classe (passer une propriété public en private) si cette variab Textbox, la suite en plus clair.... [ par darkbol ] oui merciDonc je reprends mon probleme de mise à zéro de mes cases textbox... par un clic sur le bouton RESET.voici la portion de code concernée : O


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,499 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.