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 :

SplashScreen & JTextField ne marchent pas ensemble


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 120
    Par défaut SplashScreen & JTextField ne marchent pas ensemble
    Salut à tous,

    Voilà j'ai essayé de faire un SplashScreen avec des JTextField dedans mais impossible d'écrire dedans et même de placer le curseur de la souris. Et de même pour des JButtons on ne peut pas cliquer dessus.
    En fait je veux faire un SplashScreen avec une partie connexion et une partie dédiée au chargement des paramètres de l'application (en utilisant une JProgressBar).
    Est-il possible d'ajouter et de gérer de tels composants (JTextField et JButton) dans un SplashScreen ? Sinon, quelle autre solution je pourrais utiliser pour faire ce que je souhaite ?

    Merci d'avance pour vos réponses

  2. #2
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Je vois pas ce qui t'empêche de mettre des textField dans un SplashScreen...

    Il faudrait voir la manière que tu utilisée pour créer ton splashcreen, donne nous un peu de code.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 120
    Par défaut
    En fait je me suis trompé c'est avec une JWindow et non pas un SplashScreen que je rencontrais ce genre de problèmes.

    Sinon, j'ai vu que pour faire avec un SplashScreen ce que je veux il faut utiliser des Graphics. Il faut aussi spécifier l'image de fond du SplashScreen de cette façon lors de l'éxécution de l'appli :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -splash:image.jpg Classe
    Ou il est aussi possible de spécifier le splash screen dans le manifest d'un fichier jar comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Manifest-Version: 1.0
    Main-Class: Classe
    SplashScreen-Image: image.jpg
    J'aurais voulu savoir s'il est possible d'enregistrer en "dure" l'image du SplashScreen dans une classe ? Parce que je voudrais ré-afficher le SplashScreen lors que l'utilisateur veux changer de session. Est-ce possible de faire ça avec un SplashScreen ou pas ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 120
    Par défaut
    Personne ne sait comment faire ?

  5. #5
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Le splash screen que tu spécifies dans le manifeste s'affiche pendant le lancement de la JVM, mais tu ne peut plus rien en faire ensuite.

    Dans ton cas, il faut bel et bien employer une classe étendant JWindow et affichant une image. Tu peut bien sûr garder cette image en mémoire pour la réafficher ensuite pour un changement de session ou autre.

    Par contre, je comprends pas vraiment ton problème avec ta JWindow et tes TextField, tu pourrais nous montrer ton code ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 120
    Par défaut
    Voilà mon 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
    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.Toolkit;
     
    import javax.swing.JButton;
    import javax.swing.JComponent;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    import javax.swing.JWindow;
    import javax.swing.border.Border;
    import javax.swing.border.TitledBorder;
     
    public class FenetreConnexion {
     
            // Création de la JWindow
    	private static void createConnectionWindow(){
    		JWindow window = new JWindow();
     
    	// Création du panel qui contient le grid bag layout
    	        JPanel panel = new JPanel(new GridBagLayout());
    	        Border border = new TitledBorder("");
    		panel.setBorder(border);
     
    	        // Ajout de tous les composants contenus dans le grid bag layout
    	        addForm(panel, "Email : ", new JTextField(30), GridBagConstraints.REMAINDER);
    	        addForm(panel, "Mot de passe : ", new JTextField(30), GridBagConstraints.REMAINDER);
    	        addButton(panel, "Ok", 1, GridBagConstraints.EAST);
    	        addButton(panel, "Annuler", GridBagConstraints.REMAINDER, GridBagConstraints.WEST);
     
    	        window.add(panel, BorderLayout.NORTH);
     
    	        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    	        Dimension frameSize = new Dimension(250, 150); 
    	        window.setLocation(screenSize.width / 2 - (frameSize.width / 2), screenSize.height / 2 - (frameSize.height / 2));
    		window.setSize(200, 170);
    		window.setAlwaysOnTop(true);
    		window.setVisible(true);
    	}
     
                 // Ajout des composants avec label
    	private static void addForm(JPanel panel, String text, JComponent component, int gridwidth){
    		JLabel label = new JLabel(text);
    		GridBagConstraints gbc = new GridBagConstraints();
     
    		gbc.gridwidth = 1;
    		gbc.anchor = GridBagConstraints.EAST;
    		panel.add(label, gbc);
     
    		gbc.gridwidth = gridwidth;
    		gbc.fill = GridBagConstraints.HORIZONTAL;
    		panel.add(component, gbc);
    	}
     
                 // Ajout des boutons
    	private static void addButton(JPanel panel, String text, int gridwidth, int anchor){
    		JButton button = new JButton(text);
    		GridBagConstraints gbc = new GridBagConstraints();
     
    		gbc.gridwidth = gridwidth;
    		gbc.anchor = anchor;
    		gbc.fill = GridBagConstraints.NONE;
    		panel.add(button, gbc);
    	}
     
    	public static void main(String args[]){
    		createConnectionWindow();
    	}
    }

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 120
    Par défaut
    Citation Envoyé par wichtounet
    Le splash screen que tu spécifies dans le manifeste s'affiche pendant le lancement de la JVM, mais tu ne peut plus rien en faire ensuite.

    Dans ton cas, il faut bel et bien employer une classe étendant JWindow et affichant une image. Tu peut bien sûr garder cette image en mémoire pour la réafficher ensuite pour un changement de session ou autre.

    Par contre, je comprends pas vraiment ton problème avec ta JWindow et tes TextField, tu pourrais nous montrer ton code ?
    J'ai mis mon code. wichtounet tu as trouvé le problème ou pas ?

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/07/2010, 11h06
  2. Réponses: 4
    Dernier message: 01/10/2005, 13h52
  3. Réponses: 4
    Dernier message: 04/07/2005, 09h36
  4. [VB.NET] Les évènements ne marchent pas
    Par Dnx dans le forum ASP.NET
    Réponses: 6
    Dernier message: 28/01/2005, 12h54
  5. [FASM] Interruptions BIOS ne marchent pas sous XP
    Par LaPatoshe dans le forum Assembleur
    Réponses: 2
    Dernier message: 01/12/2004, 18h44

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