Partage
  • Partager sur Facebook
  • Partager sur Twitter

rafraichir un texte dans actionPerf.

    28 décembre 2008 à 16:03:33

    Salut à tous,

    J'ai dans mon programme des tableaux de string avec du texte bien entendu. Lorsque j'entre dans mon actionPerformed, j'ai changé l'indice de mon tableau avec mes boutons, mais à la fin il faut que je rafraichisse mon string et c'est là qu'est le problème. Je n'arrive pas à trouver la méthode qui le fait. J'ai réussi à trouver la méthode "setIcon" que j'utilise aussi pour rafraichir des ImageIcon, mais pour des JLabel(Tab1[i], JLabel.CENTER), je ne trouve rien qui va.

    J'ai déjà essayé avec setText qui change complètement l'organisation de mes Jpanel, setLabelFor qui ne fait rien en apparence, et d'autre qui ne change rien non plus.

    Je compte sur vos XP en Java pour m'aider... ^^

    Merci à tous
    • Partager sur Facebook
    • Partager sur Twitter
      28 décembre 2008 à 16:14:18

      Explique clairement ce que tu veut faire
      • Partager sur Facebook
      • Partager sur Twitter
      J'ai tous les badges d'OpenClassrooms.
        28 décembre 2008 à 16:58:54

        Dans mon programme disons que j'ai un tableau déclaré dans une super classe comme ça:

        public class BiblioMafenetre extends JFrame {

        protected string[] tab1 = {"salut","coucou"};

        ...

        }

        //Ma sous classe construisant la fenêtre avec l'actionPerformed
        public class Mafenetre extends BiblioMafenetre implements ActionListener {

        hors du constructeur de fenêtre, j'ai déclaré:

        JPanel titre = new JPanel();
        JPanel MonImage = new JPanel();

        dans mon constructeur de fenêtre j'ai:

        Titre = new JLabel(tab1[i], JLabel.CENTER);
        Titre.setFont(PoliceTitre);
        Global_Container. add(Titre, BorderLayout .NORTH );

        MonImage = new JLabel(new ImageIcon(LiensImage[i])); //LiensImage contient des string qui sont les liens mes images
        JScrollPane Dessin = new JScrollPane(Image);
        Global_Container.add(Dessin, BorderLayout .CENTER);

        Les boutons sont créés et ce qui va avec pour interagir dans l'actionPerformed.

        Dans l'actionPerformed j'ai fait:

        {
        Object Click = e.getSource();

        //Clic sur le bouton afficheCoucou?
        if(Click == BoutonCoucou)
        {
        i=1;
        }
        //Clic sur le bouton afficheSalut?
        else if(Click == BoutonSalut)
        {
        i=0;
        }

        //MAJ de l'image
        MonImage.setIcon(new ImageIcon(LiensImage[i]));

        //MAJ du texte
        ....

        Et là je voudrais mettre le code qui permettrait de rafraichir mon texte qui sera soit "salut" ou "coucou" en fonction du bouton que je presse


        Ensuite j'ai mis encore

        repaint();
        }

        Bon j'espère que c'est assez détaillé cette fois et que j'ai pas oublié qqch. C'est peut-être pas facile à s'y retrouver mais j'espère que c'est mieux qu'avant ^^ .


        merci à tous :)
        • Partager sur Facebook
        • Partager sur Twitter
          29 décembre 2008 à 13:20:04

          J'ai pensé à utiliser Titre.setText à plusieurs reprise en changeant des trucs mais ça ne marche pas. Alors que sur le site de SUN, setText semble bien être la bonne solution, ainsi que sur d'autres sites.

          je pète un câble complètement avec un texte aussi simple c'est juste pas possible.
          • Partager sur Facebook
          • Partager sur Twitter
            29 décembre 2008 à 13:51:41

            as tu pensé après le setText("");
            a faire un monTexte.repaint();
            parce que là sur ton code tu repaint juste le conteneur, et pas le texte.
            • Partager sur Facebook
            • Partager sur Twitter
            J'ai tous les badges d'OpenClassrooms.
              29 décembre 2008 à 14:29:44

              non je ne l'avais pas fait mais ce qui me dérange c'est que l'organisation avec mes LayoutManager change complètement et rend l'interface graphique inutilisable.

              Pour que ça soit plus clair avec le vrai code:

              Titre.setText(new JLabel(ArmeListe[get_indice()], JLabel.CENTER); est le code que j'utilise et eclipse me souligne en rouge "setText". Il me propose de ne garder que certains arguments pour qu'il n'y ait plus d'erreurs et me donne:

              Titre.setText(ArmeListe[get_indice()]);

              Cependant la partie "Center" du panneau principal disparaît. le titre lui est au nord. la partie EAST prend toute la place et ne laisse plus de place à la partie du centre.

              Je ne sais pas si cela peut t'aider à m'aider

              merci en tout cas
              • Partager sur Facebook
              • Partager sur Twitter

              rafraichir un texte dans actionPerf.

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown