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

avec Java Discussion :

Classe standard personnels n°01


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Janvier 2009
    Messages : 22
    Points : 26
    Points
    26
    Par défaut Classe standard personnels n°01
    Salut,
    Je suis dans la perspective de réaliser des classes standards que j’utilise beaucoup, voilà la première, une classe pour la création d’une fenêtre avec un bouton :
    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
     
    /**
     * @(#)Interface.java
     *
     * Interface application
     *
     * @LASSOUI Khaled
     * @version 1.00 2009/2/3
     */
     import java.awt.Container;
     import javax.swing.JFrame;
     import javax.swing.JButton;
     import java.awt.event.ActionListener;
     import java.awt.event.ActionEvent;
     
    public class Interface extends JFrame implements ActionListener {
        //Les variables
        private Container c;
        private JButton ok;
        //Le constructeur
        public Interface(){
        	c = getContentPane();
        	c.setLayout(null);
     
        	ok = new JButton("Click");
        	ok.setBounds(85,15,95,30);
        	ok.setFocusable(false);
        	ok.setToolTipText("Tu peut Cliqué !");
        	c.add(ok);
     
        	ok.addActionListener(this);
     
        	setTitle("Interface Graphique !");
        	setDefaultCloseOperation(3);
        	setBounds(100,100,300,100);
        	setVisible(true);
        }
        public void actionPerformed(ActionEvent e){
        	if(e.getSource()==ok){
        		ok.setText("Surprise !");
        	}
        }
        public static void main(String[] args) {
        	new Interface();	
     
        }
    }
    Merci d’avance d’apporte vos critiques constructives et autre proposition pour l’améliorai en tant que classe standard.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 53
    Points : 27
    Points
    27
    Par défaut
    que veux tu dire par classe standard ?

  3. #3
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Bonjour,
    1. Le mot Interface devrait être réservé à la définition d'une interface au sens java, pas à nommer une classe IHM.
    2. Placer en dur le bouton n'est pas vraiment standar, utiliser un layout serait beaucoup plus adapté.
    3. Il faut éviter les fautes d'othographes dans une ihm que tu vas dériver X fois, 2 fautes d'orthographe + 1 faute de cohérence en 3 mots sur le tooltip du bouton et 1 faute sur le nom du bouton, cela fait beaucoup
    4. Tu devrais enlever le setVisible(true) afin que les fenêtres qui seront crées puissent initialiser leurs composants et ensuite seulement être affichées. Tu peux créer par contre un méthode afficher().

  4. #4
    vic
    vic est déconnecté
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2002
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 431
    Points : 498
    Points
    498
    Par défaut
    J'ajouterais :

    5) setDefaultCloseOperation(3); -- Argh ! Et les constantes alors ?
    6) C'est quoi l'intérêt au juste ? Faire une classe pour copier-coller et créer un nouveau projet ?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Janvier 2009
    Messages : 22
    Points : 26
    Points
    26
    Par défaut
    Bonjour,
    Tous d’abord je tiens a vos adresser mes remerciements les plus sincère pour vos interventions.
    que veux tu dire par classe standard ?
    Si ça vous plait pas comme terme alors je laisserai que Classe Personnel « que je peut utiliser a chaque fois que j’en est besoin »
    Bonjour,
    1. Le mot Interface devrait être réservé à la définition d'une interface au sens java, pas à nommer une classe IHM.
    2. Placer en dur le bouton n'est pas vraiment standar, utiliser un layout serait beaucoup plus adapté.
    3. Il faut éviter les fautes d'othographes dans une ihm que tu vas dériver X fois, 2 fautes d'orthographe + 1 faute de cohérence en 3 mots sur le tooltip du bouton et 1 faute sur le nom du bouton, cela fait beaucoup
    4. Tu devrais enlever le setVisible(true) afin que les fenêtres qui seront crées puissent initialiser leurs composants et ensuite seulement être affichées. Tu peux créer par contre un méthode afficher().
    1. Tout à fait d’accord alors le nom de la classe sera Fenetre au lieu d’Interface.
    2. Même si j’ai du mal avec les LAYOUT je ferais un effort là-dessus.
    3. A 100% avec vous je ferais attention dès maintenant. Même si il était rédigé a l’arrache.
    4. La réponse est dans le code.

    J'ajouterais :

    5) setDefaultCloseOperation(3); -- Argh ! Et les constantes alors ?
    6) C'est quoi l'intérêt au juste ? Faire une classe pour copier-coller et créer un nouveau projet ?
    5. Voire le code avec la m-a-j.
    6. C’est un peu dans l’idée de ne pas a avoir tapez a chaque fois des instructions répétitives.


    Le code de la CLASSE PERSONNEL Fenetre :
    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
     
    /**
     * @(#)Fenetre.java
     *
     * Fenetre application
     *
     * @author 
     * @version 1.00 2009/2/7
     */
     
     import java.awt.Container;
     import java.awt.FlowLayout;
     import java.awt.Dimension;
     import javax.swing.JFrame;
     import javax.swing.JButton;
     import java.awt.Color;
     import javax.swing.border.BevelBorder;
     import java.awt.event.ActionListener;
     import java.awt.event.*;
     
    public class Fenetre extends JFrame implements ActionListener,MouseListener {
        //Les variables
        private Container c;
        private JButton ok;
        //Le constructeur
        public Fenetre(){
        	c = getContentPane();
        	c.setLayout(new FlowLayout());
     
        	ok = new JButton("OK");
        	ok.setPreferredSize(new Dimension(100,30));
        	ok.setFocusable(false);
        	ok.setBackground(Color.orange);
        	ok.setBorder(null);
        	c.add(ok);
     
        	ok.addActionListener(this);
        	ok.addMouseListener(this);
     
        	setTitle("Fenêtre !");
        	setDefaultCloseOperation(EXIT_ON_CLOSE);
        	setBounds(100,100,300,80);
     
        }
        //Méthode pour l'affichage de la Fenetre
        public void afficher(){
        	this.setVisible(true);
        }
        public void actionPerformed(ActionEvent e){
        }
        public void mouseEntered(MouseEvent e){
        	if(e.getSource()==ok){
        		ok.setBorder(new BevelBorder(BevelBorder.RAISED));
        	}
        }
        public void mouseExited(MouseEvent e){
        	if(e.getSource()==ok){
        		ok.setBorder(null);
        	}
        }
        public void mouseClicked(MouseEvent e){
        }
        public void mouseReleased(MouseEvent e){
        }
        public void mousePressed(MouseEvent e){
        }
        public static void main(String[] args) {
        	Fenetre F = new Fenetre();	
        	F.afficher();
        }
    }

  6. #6
    Membre éclairé Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Points : 773
    Points
    773
    Par défaut
    salut,
    apparemment tu as l'intention de créer tes ihm à la main, et c'est vraiment un casse tête effroyable, et surtout si comme tu dis tu as du mal avec les layouts, alors il vaudrait mieux je crois utiliser Netbeans pour le développement Swing. j'avais essayé de créer à la main une ihm qui ne contenait que 2 boutons, une JTextField, un JSplitPane qui contenait une JList et JTextarea en utilisant SpringLayout, et je peux t'assurer que j'ai vraiment galéré avant d'avoir le résultat que je voulais. Donc à mon avis c'est une perte de temps et d'énergie que de vouloir créer ses ihm à la main.

    Pour ce qui est du code, tu pourrais d'abord commencer par centrer ta fenêtre, car quand on lance un programme, nos yeux... enfin les miennes sont braqués au centre de l'écran
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    int x, y, w, h;
    w = 300;
    h = 80;
    x = ((int)Toolkit.getDefaultToolkit().getScreenSize().getWidth()-w)/2;
    y = ((int)Toolkit.getDefaultToolkit().getScreenSize().getHeight()-h)/2;
    setBounds(x, y, w, h);
    et puis, au risque de te vexer, ton bouton est vraiment plus laid que celui par défaut, tu pourrais par exp créer une nouvelle classe qui hérite de JButton, et alors tu personnalises la méthode paintComponent, tu pourrais alors créer un bouton en dégradé, ou transparent, etc.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Janvier 2009
    Messages : 22
    Points : 26
    Points
    26
    Par défaut
    Merci tous pour votre participation, très instructive vos commentaires et autres
    a très vite et bon courage !

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

Discussions similaires

  1. Problème d'import de classe Java personnelle
    Par froger4 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 18/01/2011, 20h00
  2. Classe quaternion personnelle
    Par Kromagg dans le forum API graphiques
    Réponses: 5
    Dernier message: 28/05/2009, 20h13
  3. Classe standard n°2
    Par khaledzz9 dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 11/02/2009, 10h27
  4. Réponses: 3
    Dernier message: 27/09/2007, 15h24
  5. Réponses: 4
    Dernier message: 19/04/2006, 16h10

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