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

NetBeans Java Discussion :

Projet NetBeans


Sujet :

NetBeans Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Vitré
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Vitré

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Projet NetBeans
    Bonjour,

    je suis nouveau sur ce forum . Je me présente: Je suis étudiant en BTS 1ère année et j'ai comme projet de réaliser une IHM . J'ai choisi le logiciel Netbeans .Je suis débutant je précise. J'ai déjà crée ma Jframe avec mes jbuttons ( Rouge, Vert, Bleu,Noir,Jaune et Rose). j'ai déjà réussi à coder de façon à ce que lorsque j’appuie sur le bouton rouge, l’arrière plan de ma Jframe soit coloriée en rouge également. Je souhaiterai maintenant insérer 6 formes géométrique (cercle) qui feront office de Led ( à moins que quelqu'un connaisse une astuce pour avoir de belle LED) et que lorsque j'aurais cliqué sur un Jbutton, en plus de modifier larrière plan, cela modifiera aussi la couleur du cercle . J'ai déjà chercher de mon côté et j'ai appris qu'il faudrait créer une Jpannel ,.... bref je n'ai pas tout compris ! Je précise aussi qu'à long terme , mon interface sera connectée à un module arduino ( par le biais d'une liaison RS232 je suppose) et qu'il devra allumer de vrais led's mais une chose à la fois !

    je vous remercie d'avance pour votre aide.

    Cordialement

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Salut,

    Tu peux regarder cet exemple de code : http://www.codeprogress.com/java/sho...awFilledCircle

    Qui peut te mettre sur la voie, apparemment sur un objet Graphics, tu peux appeler la méthode "fillOval" qui répondrait à ton besoin.

    A+
    K

  3. #3
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Tu as 3 options :

    • effectivement utiliser un JPanel (ou un Canvas), et dessiner un cercle dedans, ou plutôt un disque je pense.
    • utiliser un JPanel (ou un Canvas) et dessiner une belle DEL dedans, mais là déjà c'est du boulot, mais en plus il faut forcément avoir certaines aptitudes "artistiques"
    • utiliser 2 images, une pour la led allumé, une pour la led éteinte -
      • soit un couple d'images pour chaque couleur de led - là tu pourras avoir de très belles DEL.
      • soit faire des modifications de couleurs automatiquement, ce qui n'est pas simple pour un débutant (et même, pas obligatoirement pour un non débutant) et il faut que les images soient prévues pour que le rendu soit joli quelque soit la couleur (selon la complexité de l'image, cela peut être plus ou moins complexe).


    Pour dessiner une forme quelconque dans un JPanel, il faut redéfinir sa méthode paintComponent() (ou paint()) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    protected void paintComponent(Graphics g) {
    		super.paintComponent(g);
    }
    L'objet g permet de dessiner dans le composant avec des ordres du type drawOval pour dessiner un cercle par exemple.

    Pour la couleur, on peut utiliser la couleur dite de foreground du JPanel qui existe déjà. Et pour gérer le fait qu'elle soit éteinte, on peut gérer la notion darker() d'une couleur, qui permet à partir d'une couleur donnée, d'obtenir une couleur plus sombre : sinon il faudra gérer 2 couleurs, une pour allumer, une pour éteinte.

    Il faut penser aussi à la taille du panel : un panel s'affiche en principe dans un container layouté. Sa taille est donc imposée par le layout manager en question. On veut peut-être imposer une taille fixe qui ne dépende pas de l'endroit où va s'afficher la DEL. On peut utiliser une dimension qui existe déjà sur tout composant (et qui sert à ça en plus) :la taille préférentielle. On adaptera le dessin dans la méthode paintComponent pour que la DEL s'affiche dans cette taille.

    Exemple :

    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
    public class SimpleDELExemple extends JPanel {
     
    	private volatile boolean onOff; // volatile permet à ce que ça fonctionne au mieux même si on allume ou éteint depuis un thread
     
    	public SimpleDELExemple(int largeur) {
    		setPreferredSize(new Dimension(largeur,largeur));
    	}
     
    	public void allumer() {
    		this.onOff=true;
    		repaint(); // on change l'état de la DEL, donc il faut redessiner
    	}
     
    	public void eteindre() {
    		this.onOff=false;
    		repaint(); // on change l'état de la DEL, donc il faut redessiner
    	}
     
    	@Override
    	protected void paintComponent(Graphics g) {
    		super.paintComponent(g);
    		if ( onOff ) {
    			// allumée
    			g.setColor(getForeground());
    		}
    		else {
    			// éteinte
    			g.setColor(getForeground().darker());
    		}
    		Dimension dimension = getPreferredSize();
    		g.fillOval((getWidth()-dimension.width)/2, (getHeight()-dimension.height)/2, dimension.width, dimension.height); // on dessine la DEL toujours centré
    	}
     
    	public static void main(String[] args) {
     
    		JFrame frame = new JFrame("Exemple de DEL");
     
    		SimpleDELExemple del = new SimpleDELExemple(24);
    		del.setForeground(Color.RED); // DEL rouge
     
    		JPanel panel = new JPanel(new BorderLayout());
    		panel.add(del, BorderLayout.CENTER);
     
     
    		JToggleButton interrupteur = new JToggleButton("Allumer");
    		interrupteur.addActionListener(e-> {
    			if ( interrupteur.isSelected() ) {
    				del.allumer();
    				interrupteur.setText("Eteindre");
    			}
    			else {
    				del.eteindre();
    				interrupteur.setText("Allumer");
    			}
    		});
    		panel.add(interrupteur, BorderLayout.SOUTH);
     
    		frame.getContentPane().add(panel);
     
    		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
    		frame.setSize(300, 300);
    		frame.setLocationRelativeTo(null);
    		frame.setVisible(true);
     
    	}
     
    }

    Si on utilise des images, on utilisera simplement un JLabel (sans texte) : cette classe à 2 méthodes, setIcon() et setDisabledIcon() qui permette de mettre 2 images. La première sera affichée si on fait label.setEnabled(true) et la seconde si on fait label.setEnabled(false).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  4. #4
    Candidat au Club
    Homme Profil pro
    Vitré
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Vitré

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    merci beaucoup pour vos réponses , je verrais cela ce soir à tête reposée !

Discussions similaires

  1. Multi langues et multi projets Netbeans
    Par genamiga dans le forum NetBeans
    Réponses: 4
    Dernier message: 10/06/2008, 20h42
  2. [Continuum] Projet Netbeans
    Par divxdede dans le forum Intégration Continue
    Réponses: 2
    Dernier message: 01/01/2008, 23h33
  3. Ouvrir un projet NetBeans
    Par hatou dans le forum NetBeans
    Réponses: 2
    Dernier message: 17/08/2007, 18h27
  4. indépendance des projets netbeans
    Par mumu105 dans le forum NetBeans
    Réponses: 1
    Dernier message: 02/06/2007, 13h23
  5. Migration d'un projet Netbeans vers Eclipse
    Par qwiskas dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 28/08/2006, 14h37

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