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 :

rafraichir toute une fenêtre en java


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Par défaut rafraichir toute une fenêtre en java
    Bonjour,

    Je bosse actuellement sur un projet Java ou je n'arriva pas à faire un rafraichissement de l'affichage. Mon problème est un peu complexe. Je dois faire l'affichage d'un emploi du temps. Donc pour faire la grille de la semaine avec les heures j'ai utilisé un JTable. Et les plages travaillés sont affichés par des JTextArea. Il faudrait donc que je puisse ajouter ou modifier ou supprimer mes JTextArea.

    Quelqu'un peut-il m'aider ?

  2. #2
    Membre expérimenté Avatar de aDamas
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 260
    Par défaut
    Pourquoi pas en utilisant get/setValueAt()...

  3. #3
    Membre confirmé Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Par défaut
    Désolé de cette réponse un peu bête, mais ça s'applique sur quelles objets ? Je n'arrive pas à la trouver sur la Javadoc.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    les set et getValue sont utile ppour une JTable, regarde les model des JTable
    DefaultTableModel

  5. #5
    Membre confirmé Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Par défaut
    ahhh ok,

    mais en fait ma JTable ne change pas, elle me sert juste à faire une grille pour mon emploi du temps. Ce qui change en revanche ce sont juste les JTextArea que je met par dessus et qui représentent les créneaux ou la personne a travaillée. Il faudrait donc que je puisse ajouter modifier et supprimer ces JTextArea. (enfait même à mon avis le plus simple serait de tout supprimer et tout recréer ensuite)

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    je peux juste te demander comment tu fais pour mettre des JTextArea dans ta JTable ?
    car il y a un moyen simple avec le model de la table de modifier le contenu de tes cellule qu'elle contiennent des JtextArea ou des JComboBox... en fait tu defini le renderer de la table avec setCellRenderer ....

  7. #7
    Membre confirmé Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Par défaut
    En fait mes JTextArea ne sont pas dans mon JTable mais par dessus mon JTable. Pour cela j'utilise un JLayeredPane. (J'essaye de vous mettre en ligne une capture d'écran pour que vous compreniez mieux mais je n'arrive pas à me connecter à mon serveur ftp)

    A mon avis le plus simple serait de reloadé tout mon JPanel qui contient tout. Mais je ne sais pas comment on fait ça.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    au fait une question pourquoi tu veux que ce soit des JTextArea ?

  9. #9
    Membre confirmé Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Par défaut
    C'est une excellente question. Il n'y a pas de raisons particulière, j'ai juste trouvé dans la javadoc un tutoriel qui me permettait avec JTextArea de faire des carrés de couleurs avec des trucs marqués dedans donc j'ai fait ça avec des JTextArea. (Je n'arrive toujours pas à me connecter à mon ftp chez free)

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    pourquoi tu n'ecris donc pas directement dans tes cellule ? je sais que tu peux changer les cellule de couleurs aussi.... pour ca utilise le model de la table pour remplir avec le texte et pour les couleur tu defini un renderer particulier
    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
     
        table.setDefaultRenderer(String.class, new DefaultTableCellRenderer() {
          public Component getTableCellRendererComponent(JTable table, Object value,
              boolean isSelected, boolean hasFocus, int row, int column) {
            super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
     
            // Test si première colonne ?
            if (column == 0) {
              setOpaque(true);
              // On récupère la couleur d'un bouton pour s'adapter au look and feel en cours.
              setBackground(new JButton().getBackground());
              setBorder(BorderFactory.createLineBorder(new JButton().getBackground()));
            } else {
              setBackground(Color.WHITE);
            }
            return this;
          }
        });
    par exemple cela grise la 1er colonne, et les autre tu fais ce que tu veux tu peux aussi gérer suivant la ligne et la colonne...

  11. #11
    Membre confirmé Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Par défaut
    Ok merci. Mais j'ai un souci, avec cette solution, c'est chaque case de mon tableau représente 30 minutes et lorsque l'utilisateur utilisera l'application il faudra qu'il puisse rentrer un créneau qui va de 8H15 à 8H30 je vais donc avoir de créneaux qui commenceront en milieu de cellule.

    En tout cas merci de passer du temps sur mon cas.

    J'ai un début de solutions, j'ai réussi à supprimer mon tableau avec tout mes JTextArea

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    je ne vois pas trop ce que tu veux dire essaye de mettre une image ce sera plus clair.

  13. #13
    Membre confirmé Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Par défaut
    merci pour l'adresse ça peut être pratique.

    Alors voici l'image :


    Voilà,

    Il faut donc par exemple que je puisse naviguer sur mes semaines. Donc à chaque fois je dois pouvoir regénérer mon emploi du temps. L'utilisateur doit aussi avoir la possibilité de modifier un créneau.

    J'ai un début de solution : J'arrive à récupérer tous les JTextArea de mon JLayeredPane. Et je peux les rendre non visible (setVisible(false)). Je les récupère en tant que Compenent et non JComponent ce qui me permettrait de les supprimer avec la fonction removeAll.

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    olala je ne sais plus trop lol, ton pb initiale c'etai que ta fenetre ne se rafraichissait pas lors d'un ajout ou d'une suppression...
    tu ajoute comment tes text area avec des add surement dans un panel avec ton layout... tu as essayé de faire un validate(); ou updateUI(); ?

  15. #15
    Membre confirmé Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Par défaut
    et non update et validate ne marchent pas !!!

    J'ai trouvé une solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    		//récupération des éléments de mon layer
    		Component[] tmp = layer.getComponentsInLayer(JLayeredPane.PALETTE_LAYER.intValue());
    		for(int i=0; i<creneauxIhm.length;i++){
    			//suppression de ces éléments
    			layer.remove(tmp[i]);
    		}
    		layer.repaint();
    Mais j'ai un autre souci après...
    Je change manuellement un créneau de date et je recharge mes créneau. Mais il me garde mon ancienne date. Je crois que je dois avoir un cache qui traine mais je ne sais pas trop ou. En tout cas je continue de chercher.

    Merci encore pour le coup de main.

  16. #16
    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
    juste comme ca t as essayé de faire :

  17. #17
    Membre confirmé Avatar de nighthammer
    Profil pro
    Développeur Java
    Inscrit en
    Juillet 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2005
    Messages : 122
    Par défaut
    et oui j'ai essayé ça aussi mail ça ne faisait rien

  18. #18
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    tu as essayer quoi exactement et sur quel composant.
    tu as bien essayer validate() sur le container des JTextArea ?

Discussions similaires

  1. Réponses: 10
    Dernier message: 28/07/2015, 11h51
  2. un bouton qui ouvre une fenêtre en Java
    Par dzsouma dans le forum Composants
    Réponses: 1
    Dernier message: 28/05/2015, 18h55
  3. Réponses: 2
    Dernier message: 19/10/2012, 21h45
  4. Donner le focus à une fenêtre non java
    Par Khyinn dans le forum Général Java
    Réponses: 2
    Dernier message: 15/05/2010, 12h40
  5. [AJAX] rafraichir tout une page sauf le
    Par schats dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/07/2007, 13h15

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