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

AWT/Swing Java Discussion :

[Debutant] problème avec showMessageDialog


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 4
    Par défaut [Debutant] problème avec showMessageDialog
    Bonjour à tous.

    J'ai un problème avec un showMessageDialog, et malgré mes recherches dans les faq et forums, je n'ai rien vu qui pourrait me dépanner. C'est pourtant une méthode simple à utiliser, mais je bloque dessus depuis plusieurs jours...

    J'utilise Netbeans 5 et java 1.5.

    Dans ma classe principale, pour afficher les messages d'erreur, je fais un
    JOptionPane.showMessageDialog(null, "C'est au joueur noir de jouer", "Attention", JOptionPane.ERROR_MESSAGE);

    J'ai bien la fenetre qui apparait avec le titre et le bouton ok, mais il n'y a ni l'icone, ni le texte à l'intérieur.
    J'ai bien fait un import javax.swing.*, et même un import javax.swing.JOptionPane, mais cela ne change rien.

    Plus curieux, quand je fais un showConfirmDialog, avec un yes_no par exemple, le bouton du yes est présent, mais pas le texte ni le bouton du no. Quand je passe la souris au dessus du bouton no, il apparait...

    A noter que quand je fais appel à cette fonction, j'ai mon appli qui tourne déja (un jeu d'echec) avec un affichage d'échiquier. L'affichage du jeu se fait à partir d'une autre classe (EchiquierFrame).
    J'ai remarqué que quand mon échiquier est affiché, j'ai un affichage partiel. Si j'appelle la fonction avant que mon échiquier ne soit affiché, elle fonctionne. Je suis donc obligé d'entouré mon showMessageDialog par des
    this.frame.hide();
    this.frame.setVisible(true);

    Mais je ne trouve pas cela très pratique, ni très beau. Sans parler du fait que je ne m'explique pas ce problème!

    En gros, j'ai une classe jeu (principale), qui est appellée par une classe clickAction (qui gère les click de souris). Jeu appelle une classe EchiquierFrame qui appelle une classe EchiquierPanel (qui fait l'affichage).

    Si quelqu'un pouvait m'aider, ça serait sympa


    Question tout autre: il n'y a pas de fonction de recherche sur ce forum? J'ai cherché une solution à mon problème sur les 20 premières pages, mais j'ai les yeux qui piquent là

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 80
    Par défaut
    Salut,
    pour ta deuxieme question : il y a bien une fonction recherche sur ce forum, sur le menu du haut entre "Derniers messages" et "liens rapides".

    Pour ton autre pb, je pense qu'il faudrait que tu mettes ton code ou au moind des morceaux.

    A plus

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 4
    Par défaut
    oula, oui, il y a même un lien "recherche" que je n'avais pas vu... il est temps que je change de lunettes

    Au fait, je rajoute un petit soucis (mais bon, à la limite, celui là ne me gêne pas trop): mon appli prend 100% de cpu!


    Dans ma classe principale:


    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
     public static void main(String[] args) {  jeu jeu=new Jeu();  }
     
     
        //Constructeur
        public Jeu(){
     
            initialiserJeu();
     
            //on inititalise la gestion des clicks
            listener = new ClickAction(this);
     
            //on initialise la fenetre et on l'affiche
            this.frame=new EchiquierFrame(plateau,listener);
            this.frame.setVisible(true);
        }
     
     
     
        //Fct principale
        public void jouer(int i,int j){
     
            [snip de différents trucc]
     
                    if(...) {
                    this.frame.hide();
                    this.frame.alerte("C'est au joueur noir de jouer!!!!");
                    this.frame.setVisible(true);
                }
     
            // on actualise l'affichage
            this.frame.rafraichir(plateau);
        }
     
     
     
     
    Dans la classe EchiquierFrame:
     
    public class EchiquierFrame extends JFrame{
     
        //Les deux variables de taille de fenetre
        private final static int LARGEUR=400;
        private final static int HAUTEUR=425;
     
            //echiquier
            EchiquierPanel echiPanel;
     
    public EchiquierFrame(Piece[][] plateau, ClickAction listener) {
            super();
     
                    // paramètres de la fenetre
        setSize(LARGEUR,HAUTEUR);
        setResizable(false);
                 setTitle("Jeu d'échec");
                 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
        JPanel panel=new JPanel();
        panel.setLayout(new BorderLayout());
     
                    //initialisation du plateau compris dans la fenetre
        this.echiPanel=new EchiquierPanel(plateau,listener);
        echiPanel.repaint();
              panel.add(echiPanel,BorderLayout.CENTER);
        getContentPane().add(panel);
            }
     
        //pour rafraichir le plateau avec le nouveau tableau
        public void rafraichir(Piece[][] plateau){
                    echiPanel.rafraichir(plateau);
                    echiPanel.repaint();
        }
     
     
            public void alerte(String s){
             JOptionPane.showMessageDialog(this, s, "Erreur!", JOptionPane.ERROR_MESSAGE);
             }

    J'ai zappé quelques trucs dans les codes, j'espère que c'est à peu près lisible...

Discussions similaires

  1. [DEBUTANT] Probléme avec l'héritage
    Par BRAUKRIS dans le forum Langage
    Réponses: 7
    Dernier message: 16/09/2005, 20h22
  2. [Debutant] Problème avec des membres static
    Par Mathieu.J dans le forum Débuter
    Réponses: 4
    Dernier message: 24/08/2005, 17h09
  3. [debutant]Problème avec une requete ....
    Par MichMich29 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 27/07/2005, 17h19
  4. [debutant] problème avec type à utiliser
    Par mlequim dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 15/07/2005, 16h08

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