Applet

Résolu
amine390 Messages postés 33 Date d'inscription vendredi 2 mars 2007 Statut Membre Dernière intervention 1 août 2011 - 4 avril 2007 à 12:15
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 4 avril 2007 à 20:13
salut
j'ai un probleme au niveau d'afichage j'ai cree une interface graphique et ci desous
j'ai fait un jslide et un bouton mais ces dernieres n'affiche pas au niveau de load mais si je click sur le bouton il affiche et si je click sir le jslider affiche
merci de me aider 

7 réponses

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
4 avril 2007 à 15:21
Salut,

tu utilise JApplet qui hérite de JPanel et qui est un composant swing donc ne dessine jamais dans paint mais dans paintComponent :

public void paintComponent(Graphics contexte){
    super.paintComponents(contexte);//important si tu veux afficher les autres composants
    //ton dessin
}

perso je te conseil plus de creer une class Canvas qui hérite de JPanel et de dessiner dedans ainsi tu sépare les dessins du conteneur de composants.

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
3
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
4 avril 2007 à 12:58
Salut,

dsl mais la j'ai pas trop compris.... pourrais-tu stp etre plus explicite et mieux détaillé ton prob.

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
amine390 Messages postés 33 Date d'inscription vendredi 2 mars 2007 Statut Membre Dernière intervention 1 août 2011
4 avril 2007 à 13:43
salut
je dois t'explique j'ai une interface qui constitue des fillrectangles et fillovale et en bas j'ai  un jslider et une bouton le probleme lorsceque j'ai je fais l'appelle de l'applet il affiche le graphisme tout seul qui est visible
les objet de pannel n'affiche que sur le click sur l'objet
voila le code de mon interface

import java.applet.Applet;
import java .awt.*;
import java.awt.Event;
import javax.swing.*;
import javax.swing.JApplet;
import java.awt.Container;
import java.awt.BorderLayout;
import javax.swing.JPanel;
import java.awt.Graphics;
import java.lang.String;


//import com.borland.dbswing.*;




public class heloword extends JApplet {
  JSlider s1=new JSlider();
                JButton start=new JButton("start");
                JPanel pan=new JPanel();


  public void init(){


          //pan.setLayout(new BoxLayout(pan,BoxLayout.Y_AXIS));
          pan.setLayout(null);
          s1.setBounds(0,320,300,20);
          start.setBounds(50,340,200,50);
          start.setBackground(Color.BLUE);
          pan.add(s1);
         start.setFocusable(true);
          pan.add(start);
           setContentPane(pan);
           setVisible(true);


          show(true);
 }
 public void start(){




 }
 public void paint(Graphics contexte){
       int i;
               //realisation du cadre
               contexte.drawRect(0,0,500,320);
             //realisation de table millikan
  contexte.setColor(Color.ORANGE);
                contexte.fillRect(0,0,500,320);


                //realisation des condensateur
                contexte.setColor(Color.GRAY);
                contexte.fillRect(0,0,500,40);
                contexte.fillRect(0,280,500,40);
                //realisation de la boule
                contexte.setColor(Color.YELLOW);
                contexte.fillOval(70,70,15,15);
                //realisation des ligne
                 contexte.setColor(Color.black);
                for ( i=40 ; i<280 ; i=i+40 )
                {
                  contexte.drawLine(0,i,500,i);
                }
                for(i=40;i<500;i=i+40)
                {
                  contexte.drawLine(i,40,i,280);
                }


 }




 }
0
amine390 Messages postés 33 Date d'inscription vendredi 2 mars 2007 Statut Membre Dernière intervention 1 août 2011
4 avril 2007 à 17:01
salut
merci c'est tres gentille mr j'ai la fais avec canvas ca marche au niveau de l'applet viewer mais dans la page html il affiche soit les composant de pannelle soit le graphics
0

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

Posez votre question
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
4 avril 2007 à 18:13
Salut,

montre comment tu as fait stp

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
amine390 Messages postés 33 Date d'inscription vendredi 2 mars 2007 Statut Membre Dernière intervention 1 août 2011
4 avril 2007 à 18:22
salut
merci tout d'abord de votre comprehention voila la nouvelle version

import java.applet.Applet;
import java .awt.*;
import java.awt.Event;
import javax.swing.*;
import javax.swing.JApplet;
import java.awt.Container;
import java.awt.BorderLayout;
import javax.swing.JPanel;
import java.awt.Graphics;
import java.lang.String;
import java.awt.Canvas;


 class MonCanvas extends Canvas {
public void paint(Graphics contexte) {
contexte.setColor(Color.black);
contexte.fillRect(10, 10, 100,50);
contexte.setColor(Color.green);
    //realisation du cadre
    contexte.drawRect(0,0,500,320);
  //realisation de table millikan
     contexte.setColor(Color.ORANGE);
     contexte.fillRect(0,0,500,320);


     //realisation des condensateur
     contexte.setColor(Color.GRAY);
     contexte.fillRect(0,0,500,40);
     contexte.fillRect(0,280,500,40);
     //realisation de la boule
     contexte.setColor(Color.YELLOW);
     contexte.fillOval(70,70,15,15);
     //realisation des ligne
      contexte.setColor(Color.black);




}
}


public class heloword extends JApplet {
  MonCanvas mc = new MonCanvas();
  JSlider s1=new JSlider();
                JButton start=new JButton("start");
                JPanel pan=new JPanel();
                JLabel jLabel1 = new JLabel();
                JLabel jLabel2 = new JLabel();
                JSlider jSlider1 = new JSlider();
                JButton b=new JButton();
  public void init(){


          pan.setLayout(new BoxLayout(pan,BoxLayout.Y_AXIS));
          pan.setLayout(null);
          s1.setBounds(0,320,300,20);
          start.setBounds(50,340,200,50);
          start.setBackground(Color.BLUE);
          pan.add(s1);




          start.setFocusable(true);
          pan.add(start);
           setContentPane(pan);


           setVisible(true);


          show(true);
 }
 public void start(){




 }
 public void paint(Graphics contexte){
       int i;
       super.paint(contexte);
       mc.paint(contexte);
       for ( i=40 ; i<280 ; i=i+40 )
           {
             contexte.drawLine(0,i,500,i);
           }
           for(i=40;i<500;i=i+40)
           {
             contexte.drawLine(i,40,i,280);
           }




 }


}
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
4 avril 2007 à 20:13
Salut,

voici la version corrigée (j'ai enlevé le code non utilisé) :

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.GridLayout;

import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JSlider;

public class Heloword extends JApplet {

    MonCanvas    mc            = new MonCanvas();
    JSlider        s1            = new JSlider();
    JButton        start        = new JButton("start");
    JSlider        jSlider1    = new JSlider();

    public void init() {
       
        //pourquoi creer un layout en BoxLayout et le mettre ensuite à null ?
        /*pan.setLayout(new BoxLayout(pan, BoxLayout.Y_AXIS));
        pan.setLayout(null);
        s1.setBounds(0, 320, 300, 20);
        start.setBounds(50, 340, 200, 50);
        start.setBackground(Color.BLUE);
        pan.add(s1);

        start.setFocusable(true);
        pan.add(start);
        setContentPane(pan);
       
        setVisible(true);//pas besoin

        show(true);//pas besoin
         */
        //je refait la mise en page (pour simplifier l'exemple
        //création du conteneur pincipale
        JPanel contentPane = (JPanel)getContentPane();
        contentPane.add(mc, BorderLayout.CENTER);
        //creation du panel qui va contenir les autres composants
        JPanel p = new JPanel();
        p.setLayout(new GridLayout(2, 1));
        p.add(s1);
        p.add(start);
        contentPane.add(p, BorderLayout.SOUTH);
    }

    public void start() {

    }

    /*
     * Si je t'ai préconisé la création d'un canvas pour le dessin c'est pas pour definir
     * paint de plus si tu reprends mon explication ci-dessus en swing il ne faut pas
     * dessiner dans la méthode paint mais paintComponent
     public void paint(Graphics contexte){
     int i;
     super.paint(contexte);
     mc.paint(contexte);
     for ( i=40 ; i<280 ; i=i+40 )
     {
     contexte.drawLine(0,i,500,i);
     }
     for(i=40;i<500;i=i+40)
     {
     contexte.drawLine(i,40,i,280);
     }

     }*/

    //n'hérite pas de Canvas mais JPanel vu que canvas c'est un composant awt et le reste de tes
    //composants sont swing. En gros retiens une chose NE MELANGE JAMAIS LES COMPOSANTS AWT ET SWING
    class MonCanvas extends JPanel {
        //si tu reprends mon explication ci-dessus en swing il ne faut pas
        //dessiner dans la méthode paint mais paintComponent
        //public void paint(Graphics contexte) {
        public void paintComponent(Graphics contexte) {
            contexte.setColor(Color.black);
            contexte.fillRect(10, 10, 100, 50);
            contexte.setColor(Color.green);
            //realisation du cadre
            contexte.drawRect(0, 0, 500, 320);
            //realisation de table millikan
            contexte.setColor(Color.ORANGE);
            contexte.fillRect(0, 0, 500, 320);

            //realisation des condensateur
            contexte.setColor(Color.GRAY);
            contexte.fillRect(0, 0, 500, 40);
            contexte.fillRect(0, 280, 500, 40);
            //realisation de la boule
            contexte.setColor(Color.YELLOW);
            contexte.fillOval(70, 70, 15, 15);
            //realisation des ligne
            contexte.setColor(Color.black);

        }
    }

}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
0
Rejoignez-nous