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 :

JFrame avec valeur de retour comme InputDialog


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 12
    Points : 7
    Points
    7
    Par défaut JFrame avec valeur de retour comme InputDialog
    Bonjour,

    est ce que qlq1 sait comment creer une jframe comme un inputdialog qui s'ouvre et qui contient une jtable quand je double clique sur une ligne la fenetre se ferme et je recupere la valeur de la ligne dans une variable.

    -Par exemple j'ai Frame1 dedans j'ai un champ fournisseur et un bouton pour ouvrir la liste des fournisseurs.

    -J ouvre la liste de fournisseurs qui contient une JTable je double clique sur le fournisseur.

    -La fenetre se ferme et le champ fournisseur de Fram1 est mis à jour.

    Merci d'avance pour votre aide.

  2. #2
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Au lieu d'utiliser JFrame, tu fais un JDialog modal. Et c'est gagné.

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Merci natha

    en effet je viens de me rappeler qu'il y a bien une classe permettant de faire ceci il s'agit bien de JDialog.

    Mais la je cherche un petit bout de code comme exemple surtout pour récupérer
    une valeur a la validation dans la fenetre.

    Merci d'avance.

  4. #4
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Exemple rapide :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class MonDialog extends JDialog {
        // ...
        public String getMaValeur() {
             return "toto";
        }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MonDialog dial = new MonDialog();
    dial.setVisible(true);
    String maValeur = dial.getMaValeur(); // ne sera appelé qu'une fois le dialogue fermé
    Et voilà, rien de compliqué.

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    En effet,

    Merci natha, j'ai cru la classe JDialog gère automatiquement les retours lors de la fermeture.
    Et si j'ai bien compris pour la rendre modale faut mettre faut aussi préciser le AlwaysOnTop.

    Encore merci

  6. #6
    Membre expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Points : 3 083
    Points
    3 083
    Par défaut
    Citation Envoyé par jliog Voir le message
    Et si j'ai bien compris pour la rendre modale faut mettre faut aussi préciser le AlwaysOnTop.
    Absolument pas.
    #setModal(true)
    ou
    #setModalityType(...) (à partir de Java6)

    Et penser à donner un parent au dialogue.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonDialog dial = new MonDialog(maFenetreParente);

  7. #7
    Futur Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    C'est noté
    Merci

  8. #8
    Futur Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Voila je viens de tester et ca marche impeccable.
    Merci bien natha:

    Voila en conclusion:

    J'ai un JFrame contenant une JTable dans cette table j'ai mis un CellEditor pour choisir l'article dans une nouvelle fenêtre qui s'ouvre, et a sa fermeture je récupère la valeur dans mon éditeur de cellule.

    La fenetre pour le choix de l'article est définie en haut par natha.

    Je poste le code de l'editeur au cas ou qlq1 en aura besoin.

    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
     
    class PopUpEditor extends AbstractCellEditor implements TableCellEditor {
            JComponent component = new JLabel();
            public Component getTableCellEditorComponent(JTable table, Object value,
                    boolean isSelected, int rowIndex, int vColIndex) {
     
     
                if (isSelected) {
                }
     
                ArticlesPopUp popup=new ArticlesPopUp(null,true);
                popup.setVisible(true);
                ((JLabel)component).setText(popup.getArticleStr());
     
                //stopCellEditing();
                return component;
            }
     
            public boolean isCellEditable(EventObject evt) {
                if (evt instanceof MouseEvent) {
                    int clickCount;
                    clickCount = 2;
     
                    return ((MouseEvent)evt).getClickCount() >= clickCount;
                }
                return true;
            }
     
            public Object getCellEditorValue() {
                return ((JLabel)component).getText();
            }
        }

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

Discussions similaires

  1. [WD14] Dll Delphi paramétré avec valeur de retour
    Par mail.spam dans le forum WinDev
    Réponses: 2
    Dernier message: 01/07/2009, 11h49
  2. Problème avec valeur de retour d'une fonction
    Par ouranos21 dans le forum SQL Procédural
    Réponses: 11
    Dernier message: 20/01/2009, 08h52
  3. Exception et méthode avec valeur de retour
    Par gmonta31 dans le forum Langage
    Réponses: 2
    Dernier message: 10/10/2008, 12h54
  4. SELECT avec valeur de retour soumises a condition
    Par Clorish dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 05/12/2007, 21h26
  5. Redimensionner une JFrame avec valeur limite
    Par ppopov dans le forum Agents de placement/Fenêtres
    Réponses: 11
    Dernier message: 15/01/2006, 20h08

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