IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques en Java Discussion :

erreur arriere plan


Sujet :

Interfaces Graphiques en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de ABN84
    Inscrit en
    Octobre 2007
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2007
    Messages : 410
    Par défaut erreur arriere plan
    bonjour,
    avec ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    import java.awt.Graphics;
    import java.awt.Toolkit;
    import java.awt.Image;
     
    public class NewJFrame extends javax.swing.JFrame {
     
        /** Creates new form NewJFrame */
        public NewJFrame() {        
            initComponents();        
            Toolkit kit = Toolkit.getDefaultToolkit();
            Image icone = kit.getImage("/background.jpg");
            g.drawImage(icone ,0, 0,this.getSize().width ,this.getSize().height, null);
        }
     
        /** This method is called from within the constructor to
         * initialize the form.
         * WARNING: Do NOT modify this code. The content of this method is
         * always regenerated by the Form Editor.
         */
        // <editor-fold defaultstate="collapsed" desc="Generated Code">
        private void initComponents() {
     
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
     
            javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGap(0, 676, Short.MAX_VALUE)
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGap(0, 475, Short.MAX_VALUE)
            );
     
            pack();
        }// </editor-fold>
     
        /**
         * @param args the command line arguments
         */
        public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new NewJFrame().setVisible(true);
                }
            });
        }
     
        // Variables declaration - do not modify
        // End of variables declaration
    Graphics g;    
    }
    j'ai une erreur au niveau de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g.drawImage(icone ,0, 0,this.getSize().width ,this.getSize().height, null);
    Citation Envoyé par erreur
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    quelcun saurait-il d'ou ca vient?
    merci

  2. #2
    Membre émérite
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Par défaut
    A quel moment dans ton code définis-tu la taille de ta fenêtre ?

    Ie, il faut que tu donnes des dimensions à ta fenêtre pour ensuite utiliser ses dimensions pour définir la taille de ton image.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    setPreferredSize(new Dimension(400,400));
    Pour optimiser la taille de la fenêtre tu peux récupérer la taille de l'écran.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
    setPreferredSize(new Dimension(screen.getWidth(),screen.getHeight()));
    Il y a aussi cette ligne peut être qui pose problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Image icone = kit.getImage("/background.jpg");
    //essaie ceci au cas où
    Image icone = kit.getImage("./background.jpg");

  3. #3
    Membre éclairé Avatar de ABN84
    Inscrit en
    Octobre 2007
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2007
    Messages : 410
    Par défaut
    A quel moment dans ton code définis-tu la taille de ta fenêtre ?
    la taille est definie dans un fichier externe "NewJFrame.form":
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <?xml version="1.0" encoding="UTF-8" ?>
    
    <Form version="1.3" maxVersion="1.5" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
      <Properties>
        <Property name="defaultCloseOperation" type="int" value="3"/>
      </Properties>
      <SyntheticProperties>
        <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
      </SyntheticProperties>
      <AuxValues>
        <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
        <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
        <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
        <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
        <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
        <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
        <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
        <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
      </AuxValues>
    
      <Layout>
        <DimensionLayout dim="0">
          <Group type="103" groupAlignment="0" attributes="0">
              <EmptySpace min="0" pref="676" max="32767" attributes="0"/>
          </Group>
        </DimensionLayout>
        <DimensionLayout dim="1">
          <Group type="103" groupAlignment="0" attributes="0">
              <EmptySpace min="0" pref="475" max="32767" attributes="0"/>
          </Group>
        </DimensionLayout>
      </Layout>
    </Form>
    en fait, il s'ajit de code generé automatiquement par un IDE.
    ce que j'ai ajouté moi meme c'est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            Toolkit kit = Toolkit.getDefaultToolkit();
            Image icone = kit.getImage("/background.jpg");
            g.drawImage(icone ,0, 0,this.getSize().width ,this.getSize().height, null);
    //essaie ceci au cas où
    Image icone = kit.getImage("./background.jpg");
    ca na rien changé.

  4. #4
    Membre émérite
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Par défaut
    Essaie ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    g.drawImage(icone ,0, 0,this.getSize().width ,this.getSize().height, this);

  5. #5
    Membre éclairé Avatar de ABN84
    Inscrit en
    Octobre 2007
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2007
    Messages : 410
    Par défaut
    IDEM.

  6. #6
    Membre émérite
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Par défaut
    Et si tu affiches la hauteur et la largeur de la fenêtre dans ta console :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    System.out.println(""+this.getSize().width);
    System.out.println(""+this.getSize().height);
    Quelles valeurs récupères-tu ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [web] Lancer un script en arrière plan
    Par gracouille dans le forum Web
    Réponses: 4
    Dernier message: 27/05/2004, 16h37
  2. Installer Interbase en arriere plan depuis delphi
    Par nanaalain dans le forum Bases de données
    Réponses: 9
    Dernier message: 24/11/2003, 14h18
  3. programme en arriere plan
    Par tgx874sah dans le forum Réseau
    Réponses: 4
    Dernier message: 21/11/2003, 13h06
  4. [MFC]arriere plan pour un objet de la classe CStatic
    Par gabriel knight dans le forum MFC
    Réponses: 13
    Dernier message: 28/07/2003, 10h42
  5. j'arrive pas a arreter mon thread d'arriere-plan
    Par ms91fr dans le forum Langage
    Réponses: 6
    Dernier message: 06/06/2003, 21h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo