CHKDSK2K
Messages postés144Date d'inscriptionmardi 2 septembre 2003StatutMembreDernière intervention18 septembre 2007
-
15 févr. 2004 à 10:36
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 2012
-
16 févr. 2004 à 22:40
Bonjour
Quand je lance mon programme il dessine mais quand je met une autre fenetre style Outlook ou autre audecu et que je reviens sur la fenetre je ne vois plus il ne garde pas en memoire le dessin comment je dois faire ... Pourriez vous me dire qu'es ce que je dois ajouter dans mon code pour que cela fonctionne ?
Merci
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class xxx5
{
static int LigneVertical = 0;
static int LigneVerticalnbre1 = 20;
static int LigneVerticalnbre2 = 20;
static int LigneFiniVertical = 0;
static int LigneHorizontal = 0;
static int LigneHorizontalnbre1 = 20;
static int LigneHorizontalnbre2 = 20;
static int LigneFiniHorizontal = 0;
public static void main (String [] args)
{
final JPanel Panel_Princ = new JPanel(new GridLayout(2,1,5,5));
final JPanel Panel_Dessin = new JPanel(null);
final JPanel Panel_Button = new JPanel(null);
JButton Button_Run = new JButton("RUN");
Button_Run.setBounds(15,20,50,25);
Button_Run.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
final Graphics dessin = Panel_Dessin.getGraphics();
while(LigneFiniVertical <= 27)
{
dessin.drawLine(LigneVerticalnbre1,20,LigneVerticalnbre2,210);
LigneVerticalnbre1 = LigneVerticalnbre1 + 10;
LigneVerticalnbre2 = LigneVerticalnbre2 + 10;
LigneFiniVertical = LigneFiniVertical + 1;
}
while(LigneFiniHorizontal <= 19)
{
dessin.drawLine(20,LigneHorizontalnbre1,290,LigneHorizontalnbre2);
LigneHorizontalnbre1 = LigneHorizontalnbre1 + 10;
LigneHorizontalnbre2 = LigneHorizontalnbre2 + 10;
LigneFiniHorizontal = LigneFiniHorizontal + 1;
}
}
});
Panel_Button.add(Button_Run);
Panel_Button.setBorder(BorderFactory.createTitledBorder("Button_RUN"));
Panel_Dessin.setBorder(BorderFactory.createTitledBorder("Dessin"));
Panel_Princ.add(Panel_Dessin);
Panel_Princ.add(Panel_Button);
JFrame Frame_Princ = new JFrame("HELLO");
Frame_Princ.setBounds(10,10,500,500);
Frame_Princ.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Frame_Princ.setResizable(false);
Frame_Princ.getContentPane().add(Panel_Princ);
Frame_Princ.setVisible(true);
}
}
CHKDSK2K
Messages postés144Date d'inscriptionmardi 2 septembre 2003StatutMembreDernière intervention18 septembre 2007 15 févr. 2004 à 11:29
salut Neodante
quand je clique sur button je crée "Graphics dessin = Panel_Dessin.getGraphics();" et en suite (toujours dans l'action du button) il dessine les lignes donc oui je crois ke je dessine n'importe ou dans mon code ... comment régler le probleme ?
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 200611 15 févr. 2004 à 17:10
:big) Neodante :big)
Il va te falloir mettre ton code de 'dessin' dans la méthode pain(Graphics) à condition d'hériter ta classe d'un objet Frame ou JFrame ... regarde la javadoc et le mécanisme de rafraichissement de AWT/Swing ....
@+
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 201212 15 févr. 2004 à 23:29
GodConan :clown)
en fait la tu ne dessine pas vraiment n importe ou ...
tu dessine ds le panel que tu met ds ta frame mais le prob c que qd la frame recoi un event de repaint ;o) elle ne fait que se redessiner comme elle se connai c a dire avec un panel vide ...
dc comme le conseil Neodante il te faut surcharger les methode de maj graphic de ton panel soit en surcharge a l intanciation soit en surcharge d heritage.. ;o)
en gros faire de la programation Objet ;o) et n utiliser la methode "main" que comme un point d entrer pour instantier ta class principale... je pense que tu devrait trouver asser d exemple sur ce site, sur la facon de faire un prog en java ;o) ...
CHKDSK2K
Messages postés144Date d'inscriptionmardi 2 septembre 2003StatutMembreDernière intervention18 septembre 2007 16 févr. 2004 à 16:24
Salut GodConan et Neodante
Merci de vos reponses je vais essaye de trouver mais je suis toujours un débutant et vu que je n'ai pas beaucoup de temps libre je ne sais pas beaucoup avancé :'(
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 200611 16 févr. 2004 à 17:04
:big) Neodante :big)
En gros regarde les sources de programme simple sur le site, tu devrais pouvoir comprendre (les bases du moins vu la grandeur de Swing/AWT ...) du mécanisme !
@+
cs_GodConan
Messages postés2113Date d'inscriptionsamedi 8 novembre 2003StatutContributeurDernière intervention 6 octobre 201212 16 févr. 2004 à 22:40
GodConan :clown)
je poste sur le site un sample de base pour l utilisation d un d un offscreen que javai fait pour un pote ;o) il n i a pas plus simple ....
pis apres ;o) si tu bute encor pose des questions....
;o)
a vi ;o) si je tenvoi sa comme sample c aussi que cela devrai corespondre a t besoin ;o) car l avantage de dessiner tout ds une image ;o) c que tu peu rafraichir ta fenetre nimporte qd ;o)... sans avoir a memo toute les action de dessin...