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

Agents de placement/Fenêtres Java Discussion :

Couleurs et JFrame


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Par défaut Couleurs et JFrame
    Bonjour,

    Pour commencer je ne suis pas français, donc il peut y avoir des fautes d'orthographes et de grammaire.
    J'ai fais le code suivant avec Eclipse dont la fonction est d'afficher des couleurs aléatoires dans le quart d'une fenêtre toutes les x secondes.
    Mais il va tellement vite qu'il les montre toutes à la fois.
    Quelqu'un pourrait-il m'aider? (Je suis un noob vous l'avez sans doute remarqué au vue de la qualité désastreuse du 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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    import java.awt.Color;
    import java.awt.Container;
    import java.awt.Graphics;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
     
    public class quenivelquieres extends JFrame {
     
      private static final long serialVersionUID = 8585544783492126617L;
     
      public static quenivelquieres app;
     
      public static final int APP_WIDTH = 500;
     
      public static final int APP_HEIGHT = 500;
     
      private JMenuBar Barra;
     
      private JMenu Archivo;
     
      private JMenuItem salir;
     
      public static void main(final String[] args) {
        app = new quenivelquieres();
        app.show();
      }
     
      @Override
      public void paint(final Graphics gfx) {
        setLayout(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Barra = new JMenuBar();
        Archivo = new JMenu("Archivo");
        Barra.add(Archivo);
        salir = new JMenuItem("Salir");
        Archivo.add(salir);
        salir.addActionListener(new ActionListener() {
          @Override
          public void actionPerformed(final ActionEvent evento) {
            System.exit(0);
          }
        });
        this.setJMenuBar(Barra);
        setVisible(true);
     
        final Container workArea = this.getContentPane();
        final Graphics workAreaGfx = workArea.getGraphics();
        int z = 0;
        while (z < 1000) {
     
          int x = (int) (Math.random() * 10 + 1);
     
          if (x == 5) {
            x = x - 1;
          }
          if (x == 6) {
            x = x - 3;
          }// 3
          if (x == 7) {
            x = x - 5;
          }// 2
          if (x == 8) {
            x = x - 7;
          }// 1
          if (x == 9) {
            x = x - 5;
          }// 4
     
          if (x == 10) {
            x = x - 9;
          }// 1
     
          if (x == 1) {
            workAreaGfx.setColor(Color.blue);
            final int width = workArea.getWidth();
            final int height = workArea.getHeight();
            workAreaGfx.fillRect(0, 0, width / 2, height / 2);
          }
          if (x == 2) {
            workAreaGfx.setColor(Color.red);
            final int width = workArea.getWidth();
            final int height = workArea.getHeight();
            workAreaGfx.fillRect(250, 250, width, height);
          }
          if (x == 3) {
            workAreaGfx.setColor(Color.yellow);
            final int width = workArea.getWidth();
            final int height = workArea.getHeight();
            workAreaGfx.fillRect(250, 0, width / 2, height / 2);
          }
          if (x == 4) {
            workAreaGfx.setColor(Color.green);
            final int width = workArea.getWidth();
            final int height = workArea.getHeight();
            workAreaGfx.fillRect(0, 250, width / 2, height / 2);
          }
     
          z += 1;
          this.setSize(APP_WIDTH, APP_HEIGHT);
          this.setTitle("Dale al Azúl");
        }
      }
    }

  2. #2
    Membre Expert
    Avatar de Gueritarish
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2007
    Messages
    1 800
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 800
    Par défaut
    Salut,

    Tout d'abord, quelques conseils:
    • toujours écrire son code en anglais (c'est plus lisible pour ceux qui doivent te relire)... Par exemple, j'ai jamais fais d'espagnol
    • suivre les conventions de nommage Java (nom de classe en majuscule, nom de méthodes / variables / attributs débutent par une minuscule, ...).
    • bien indenter son code (ça facilite la relecture et Eclipse fait ça automatiquement).
    Ensuite, sache utiliser les composants Swing. Surcharger la méthode paint() d'une JFrame, dans ton cas, ça n'a pas beaucoup d'intérêt...
    Bref, voilà ce que je pense que tu voulais obtenir:
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    import java.awt.BorderLayout;
    import java.awt.Canvas;
    import java.awt.Color;
    import java.awt.EventQueue;
    import java.awt.Graphics;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
     
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JPanel;
    import javax.swing.SwingWorker;
     
    public class MyWindow extends JFrame {
     
      private static final long serialVersionUID = 8585544783492126617L;
     
      public static MyWindow app;
     
      public static final int APP_WIDTH = 500;
     
      public static final int APP_HEIGHT = 500;
     
      private JMenuBar menuBar;
     
      private JMenu file;
     
      private JMenuItem quit;
     
      public MyWindow() {
        createContent();
      }
     
      public static void main(final String[] args) {
        EventQueue.invokeLater(new Runnable() {
     
          /**
           * {@inheritDoc}
           */
          @Override
          public void run() {
            app = new MyWindow();
            app.setVisible(true);
          }
        });
      }
     
      private void createContent() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        menuBar = new JMenuBar();
        file = new JMenu("File");
        menuBar.add(file);
        quit = new JMenuItem("Quit");
        file.add(quit);
        quit.addActionListener(new ActionListener() {
          /**
           * {@inheritDoc}
           */
          @Override
          public void actionPerformed(final ActionEvent evento) {
            System.exit(0);
          }
        });
        menuBar.setVisible(true);
        this.setJMenuBar(menuBar);
        this.setSize(APP_WIDTH, APP_HEIGHT);
        this.setTitle("Dale al Azúl");
        this.setLayout(new BorderLayout());
        final JPanel contentPane = new JPanel();
        final Canvas canvas = new Canvas() {
          private static final long serialVersionUID = -8299229889947898987L;
     
          /**
           * {@inheritDoc}
           */
          @Override
          public void paint(final Graphics paramGraphics) {
            final int x = (int) (Math.random() * 4 + 1);
     
            switch (x) {
            case 1:
              paramGraphics.setColor(Color.blue);
              int width = paramGraphics.getClipBounds().width;
              int height = (paramGraphics.getClipBounds().height);
              paramGraphics.fillRect(0, 0, width / 2, height / 2);
              break;
            case 2:
              paramGraphics.setColor(Color.red);
              width = paramGraphics.getClipBounds().width;
              height = (paramGraphics.getClipBounds().height);
              paramGraphics.fillRect(250, 250, width, height);
              break;
            case 3:
              paramGraphics.setColor(Color.yellow);
              width = paramGraphics.getClipBounds().width;
              height = (paramGraphics.getClipBounds().height);
              paramGraphics.fillRect(250, 0, width / 2, height / 2);
              break;
            case 4:
              paramGraphics.setColor(Color.green);
              width = paramGraphics.getClipBounds().width;
              height = (paramGraphics.getClipBounds().height);
              paramGraphics.fillRect(0, 250, width / 2, height / 2);
              break;
            default:
              break;
            }
          }
        };
        contentPane.setLayout(new BorderLayout());
        contentPane.add(canvas, BorderLayout.CENTER);
        this.getContentPane().add(contentPane, BorderLayout.CENTER);
        final SwingWorker<Object, Object> test = new SwingWorker<Object, Object>() {
     
          /**
           * {@inheritDoc}
           */
          @Override
          protected Object doInBackground() throws Exception {
            int z = 0;
            while (z < 1000) {
              Thread.sleep(500);
              canvas.repaint();
              z += 1;
            }
            return null;
          }
     
        };
        test.execute();
      }
    }
    Il te faudra sûrement le remanier. Regarde ce que font les différentes méthodes et renseigne toi sur les classes que j'ai utilisé. Ça sera un bon exercice

    Voilà, à+
    Gueritarish

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 25
    Par défaut
    Merci Beaucoup!!!

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

Discussions similaires

  1. Changer la couleur de fond d'une JFrame
    Par NFHnv dans le forum Débuter
    Réponses: 1
    Dernier message: 17/04/2009, 21h24
  2. [DEBUTANT] Changer la couleur d'une JFrame
    Par ionix dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 15/08/2006, 20h24
  3. Probleme couleure de fond d'une JFrame
    Par daninho dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 02/02/2006, 17h10
  4. Probleme de modification de couleur de JFrame
    Par canigu dans le forum Agents de placement/Fenêtres
    Réponses: 5
    Dernier message: 21/12/2005, 02h51
  5. [JFrame] Couleur barre de titre
    Par triscorp dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 29/10/2004, 19h17

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